用户
 找回密码
 入住 CI 中国社区
搜索
查看: 1970|回复: 5
收起左侧

[已解决] 问个比较弱智的问题,如何判断当前使用的是什么数据库?

[复制链接]
发表于 2013-5-6 11:25:21 | 显示全部楼层 |阅读模式
本帖最后由 amu 于 2013-5-6 12:25 编辑

问个比较弱智的问题,如何判断当前使用的是什么数据库?
因为我的程序在实际应用中,有时候用的时候mysql有时候用的是sqlite(不是混用,是整体切换)
 楼主| 发表于 2013-5-6 11:28:48 | 显示全部楼层
因为最以前我的程序不管是用mysql还是用sqlite都是用pdo的。所以直接用:getAttribute(PDO::ATTR_DRIVER_NAME)就可以返回当前使用的数据库名称。
但是ci我不知道怎么取得
 楼主| 发表于 2013-5-6 11:55:37 | 显示全部楼层
另外ci自带的数据库类中,连接mysql(配置中dbdriver填的是mysql,填pdo没用,要出错)的时候使用的是pdo还是mysql?
 楼主| 发表于 2013-5-6 12:07:33 | 显示全部楼层
ok,查到mysql也可以用pdo。
$db['default']['hostname'] = 'mysql:host=localhost';
$db['default']['dbdriver'] = 'PDO';
hostname如上设置就行
 楼主| 发表于 2013-5-6 12:24:27 | 显示全部楼层
搞定,看源程序。
改mysql和sqlite均用pdo方式连接。
然后。db类中有一个db_connect()方法,直接返回数据库连接对象。这里就返回了PDO对象。
然后直接用
$this->db->db_connect()->getAttribute(PDO::ATTR_DRIVER_NAME);
可以返回当前数据库名称,mysql 或 sqlite。
这样看来,我估计$this->db->db_connect()后面可以直接按原生的pdo查询来读写数据库。
 楼主| 发表于 2013-5-6 12:51:56 | 显示全部楼层
晕死,$this->db->conn_id 就等于 $this->db->db_connect()
但是好像$this->db->conn_id是经过处理的,所以大家要用应该还是用$this->db->conn_id好了。

本版积分规则