569 Star 1.9K Fork 505

GVPdogstar / PhalApi

 / 详情

π框架对多数据库的支持

已完成
创建于  
2016-08-02 16:06

目前π框架在支持多数据库方面还是有不足。建议框架解决方案如下:
第一步: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;
    }

评论 (4)

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

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

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

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

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

dogstar 关闭了任务

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(4)
423443 wenzhenxi 1603939338 867591 nil 2008 1646019074 110856 zhaoxiang520 1578917987 121026 dogstar 1578918467
PHP
1
https://gitee.com/dogstar/PhalApi.git
git@gitee.com:dogstar/PhalApi.git
dogstar
PhalApi
PhalApi

搜索帮助