关于CI 2.2.0中使用sqlite问题
因为项目关系需要使用sqlite数据库, 但是配置后测试报了这么一个错, 求解决Fatal error: Call to a member function rowCount() on a non-object in E:\shuai\CodeIgniter_2.2.0\system\database\drivers\pdo\pdo_result.php on line 431. 配置文件
http://codeigniter.org.cn/forums/data/attachment/album/201407/15/140630cr922nsgsgfsggig.png
2. 控制器中的代码
http://codeigniter.org.cn/forums/data/attachment/album/201407/15/140640bliiew7c87hw8hbi.png
3. 错误提示
http://codeigniter.org.cn/forums/data/attachment/album/201407/15/140636jpfzn4plsfachzah.png
我也遇到相同问题用的是mysql数据库,求解决Fatal error: Call to a member function rowCount() on a non-object in D:\wamp\www\myproject\system\database\drivers\pdo\pdo_result.php on line 42 sqlite数据分2,3两个版本。楼主这个貌似是3.
如果用3,需要在php.ini中配置扩展。此外,在配置路径时,一般用realpath函数直接指定sqlite数据库的位置,而不是用hostname。最后,链式AR如果报错,用db->query(sql)试试,看是否报错。 spt119 发表于 2014-7-20 22:26
sqlite数据分2,3两个版本。楼主这个貌似是3.
如果用3,需要在php.ini中配置扩展。此外,在配置路径时,一 ...
能给个示例吗?
再有你提到的在php.ini中需要开启扩展,请问具体是什么扩展?
谢谢了!
本帖最后由 TurboY 于 2015-3-17 16:46 编辑
这个问题我昨天看到一次了,再回复一次吧。
CodiIgniter 2.2的PDO驱动还很不成熟,不推荐使用。
这是CodeIgniter-2.2-stable这个版本的BUG。在pdo_drivers.php和pdo_result.php这两个文件里都调用了rowCount()方法,但事实上pdo_result.php里根本没有定义这个方法。不仅SQLite,OCI8等用CI2.2默认的数据库驱动操作都不行。
CI提供了sqlite驱动,但这个是SQLite2的。PHP5.3开始有php_sqlite3了,一定要用SQLite3的话,可以用我改写出的一个用于CI2.2的sqlite3数据库驱动。
下面是 CodeIgniter2.2的SQLite3数据库驱动,解压后放到 system/databases/drivers/ 下就可以用了,application/config/database.php 里只要写 “$db['sqlite3']['dbdriver'] = 'sqlite3';”就可以了。
附件见 前一个帖子 ,节约点空间。
吧 2.1.4 的 pdo_driver.php覆盖过去就好了
页:
[1]