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

[HELP] CI 连接SQLite错误

[复制链接]
发表于 2015-1-30 18:12:13 | 显示全部楼层 |阅读模式
之前用CI 2.1.4连接SQLite一切正常,使用pdo驱动,更新到2.2.0后没做任何其它改动提示错误:

Fatal error: Call to a member function rowCount() on a non-object in .....pdo_result.php

今天出了2.2.1版本,试着升级了一下,也没做任何改动,提示另外一个错误:

Trying to get property of non-object
发表于 2015-3-16 15:14:28 | 显示全部楼层
这个我也遇到了,这是CodeIgniter-2.2-stable这个版本的BUG,在pdo_drivers.php和pdo_result.php这两个文件里都调用了rowCount()方法,但事实上pdo_result.php里根本没有定义这个方法。
SQLite 3.0版里没有 sqlite_num_rows()这样的函数了,所以rowCount()也没有原生支持。但这不是SQLite 3 的问题,rowCount()功能很容易就可以自己补上的。
我还试过以PDO方式连接其他几类数据库,都很不好用,看来CI2.2的PDO驱动还很不成熟,不推荐使用。
PHP5.3开始有php_sqlite3了,所以我以SQLite3的API写了一个用于CI2.2的数据库驱动,用来解决上面的问题。
下面是 CodeIgniter2.2的SQLite3数据库驱动,解压后放到 system/databases/drivers/ 下就可以用了,application/config/database.php 里只要写 “$db['sqlite3']['dbdriver'] = 'sqlite3';”就可以了。
sqlite3forCI2.2.7z (5.97 KB, 下载次数: 98)

发表于 2015-11-3 12:04:37 | 显示全部楼层
把 2.1.4 的 pdo_driver.php 覆盖过去就好了
发表于 2017-2-17 14:30:12 | 显示全部楼层
TurboY 发表于 2015-3-16 15:14
这个我也遇到了,这是CodeIgniter-2.2-stable这个版本的BUG,在pdo_drivers.php和pdo_result.php这两个文件 ...

下载地址失效了
发表于 2017-2-17 23:07:44 | 显示全部楼层

今天论坛设置有点问题,附件无法下载的问题已经修复了,感谢支持。

本版积分规则