请选择 进入手机版 | 继续访问电脑版

SpeedPHP框架

 找回密码
 成为新用户

QQ登录

只需一步,快速开始

查看: 724|回复: 1

让新版支持所有的数据库

[复制链接]
发表于 2020-4-25 15:48:05 | 显示全部楼层 |阅读模式
修改speed.php中的dbInstance
public function dbInstance($db_config, $db_config_key, $force_replace = false){
        if($force_replace || empty($GLOBALS['mysql_instances'][$db_config_key])){
            try {
                if(!class_exists("PDO") || !in_array("mysql",PDO::getAvailableDrivers(), true)){
                    err('Database Err: PDO or PDO_MYSQL doesn\'t exist!');
                }
                $GLOBALS['mysql_instances'][$db_config_key] = new PDO($db_config['dns'], $db_config['username'], $db_config['password'], $db_config['SQL_OPTION']);
            }catch(PDOException $e){err('Database Err: '.$e->getMessage());}
        }
        return $GLOBALS['mysql_instances'][$db_config_key];
    }

在配置文件中设置多个数据库:
"localhost" => array( // 调试配置
        'debug' => 1,
        'mysql' => array(
                'dns' => 'mysql:host=localhost;dbname=test',
                'username' => 'root',
                'password'   => 'usbw',
                'CHARSET' => 'utf8',
                'SQL_OPTION' => array(
                      PDO::ATTR_CASE => PDO::CASE_NATURAL,
                      //PDO::ATTR_PERSISTENT => true //长连接
                  ),

        ),
        'sqlite' => array(
                'dns' => 'sqlite:d:/wlsj.db',
                'username' => 'root',
                'password'   => 'usbw',
                'CHARSET' => 'utf8',
                'SQL_OPTION' => array(
                      PDO::ATTR_CASE => PDO::CASE_NATURAL,
                      //PDO::ATTR_PERSISTENT => true //长连接
                      PDO::FETCH_ASSOC
                  ),

        ),
    ),

在控制器中使用:
function actionA(){
        $a=new Model();
         // $a = new User();
        $b=$a->dbInstance($GLOBALS['sqlite'], 'master', true);


        $sql="select * from SWJG";
        $c=$b->query($sql);
        foreach ($c as $row) {
            print_r($row['SWJGMC']);
            }

    }
这样修改后就支持多个数据库,并且支持不同的数据库,只是除mysql以后只能用原生的查询语句。






您需要登录后才可以回帖 登录 | 成为新用户

本版积分规则

手机浏览|简版|中文PHP框架|开源协议|SpeedPHP.com ( 粤ICP备08008671号

GMT+8, 2020-9-26 20:39

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表