Metrics
0
Watch 532 Star 1.5K Fork 443

GVP暗夜在火星 / PhalApiPHP

π框架对多数据库的支持

Closed
连友  Created at

目前π框架在支持多数据库方面还是有不足。建议框架解决方案如下:
第一步: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 867591_z_ly2008 110856_xiaoxunzhao 121026_dogstar total 4 participants

Comments (4)

423443_wenzhenxi
/wenzhenxi 2016-08-02 20:39 member

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

867591_z_ly2008
/nil-2008 2016-08-03 09:53

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

110856_xiaoxunzhao
/xiaoxunzhao 2016-08-03 23:19 member

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

121026_dogstar
/dogstar 2016-08-06 12:58 owner

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

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

Sign in and comment

Assignee
Labels
Not set
Project
Milestone
Branch
Scheduled start
Not set
Scheduled end
Not set
Top level
Priority

Help Search

Gitee_sixth 5th_float_left_close