Score
0
Watch 550 Star 1.6K Fork 460

GVPdogstar / PhalApiPHPApache-2.0

π框架对多数据库的支持

Closed
连友  Opened this issue

目前π框架在支持多数据库方面还是有不足。建议框架解决方案如下:
第一步:Config/dbs.php下添加数据库标识pdo

   'servers' => array(
        'db_tradeapi' => array( //服务器标记
            'pdo'      => 'pgsql',//数据库类型
            'host'     => 'XX', //数据库域名
            'name'     => 'XX', //数据库名字
            'user'     => 'XX', //数据库用户名
            'password' => 'XX', //数据库密码
            'port'     => '5432', //数据库端口
            'charset'  => 'UTF8', //数据库字符集
        ),
    ),

第二步:PhalApi/PhalApi/DB/NotORM.php
修改如下函数

 protected function createPDOBy($dbCfg)
    {
        $dsn = sprintf('%s:dbname=%s;host=%s;port=%d',
            isset($dbCfg['pdo']) ? $dbCfg['pdo'] : 'mysql',//添加数据库类型标识判断,默认是MySQL
            $dbCfg['name'],
            isset($dbCfg['host']) ? $dbCfg['host'] : 'localhost',
            isset($dbCfg['port']) ? $dbCfg['port'] : 3306
        );
        $charset = isset($dbCfg['charset']) ? $dbCfg['charset'] : 'UTF8';

        $pdo = new PDO(
            $dsn,
            $dbCfg['user'],
            $dbCfg['password']
        );
        $pdo->exec("SET NAMES '{$charset}'");

        return $pdo;
    }
423443 wenzhenxi 1578923386 867591 nil 2008 1578934330 110856 zhaoxiang520 1578917987 121026 dogstar 1578918467 total 4 participants

Comments (4)

423443 wenzhenxi 1578923386
喵了个咪 2016-08-02 20:39 member

有考虑过 但是不是这样简单的 pdo连接没种数据库的方式都不一想 需要配置文件 连接方式单独封装

867591 nil 2008 1578934330
连友 2016-08-03 09:53

如果单独配置的话,肯定是个大的工程。到时候估计的放弃NotORM了

110856 zhaoxiang520 1578917987
Zhao 2016-08-03 23:19 member

我最近在考虑集成Mongo,但是初步考虑是使用插件的形式,数据库ORM是一个很重要的模块,以前我曾经提供过一个Medoo数据库驱动插件,有需要的可以看看!

121026 dogstar 1578918467
dogstar 2016-08-06 12:58 owner

目前PhalApi使用NotORM来操作数据库,是比较欠缺。如果大家需要其他的数据库但NotORM不能很好满足时,可考虑使用像 Zhao 提供的扩展类库。

给大家带来的不便,请谅解!也欢迎大家一起来完善,提供更好的解决方案给开源社区。

Sign in to comment

Assignees
Labels
Not set
Projects
Milestones
Branches
Planed to start
Not set
Planed to end
Not set
Top level
Priority
PHP
1
https://gitee.com/dogstar/PhalApi.git
git@gitee.com:dogstar/PhalApi.git
dogstar
PhalApi
PhalApi

Search