【发布时间】:2012-11-07 17:13:03
【问题描述】:
我刚刚设置 CI 以通过 PDO 与 sqlite 一起工作,一切都很顺利。 (我可以查询sqlite db,一切都很好。)
现在我有一个问题,我设置:
$config['sess_use_database'] = TRUE;
问题出现了:
Fatal error: Call to a member function execute() on a non-object in C:\wamp\www\CI\system\database\drivers\pdo\pdo_driver.php on line 193
Call Stack
# Time Memory Function Location
1 0.0030 151392 {main}( ) ..\index.php:0
2 0.0109 187664 require_once( 'C:\wamp\www\CI\system\core\CodeIgniter.php' ) ..\index.php:202
3 0.0885 669544 Login->__construct( ) ..\CodeIgniter.php:308
4 0.0885 669600 CI_Controller->__construct( ) ..\login.php:7
5 0.0986 793008 CI_Loader->initialize( ) ..\Controller.php:51
6 0.0986 792984 CI_Loader->_ci_autoloader( ) ..\Loader.php:152
7 0.1362 1331192 CI_Loader->library( ) ..\Loader.php:1178
8 0.1363 1331304 CI_Loader->_ci_load_class( ) ..\Loader.php:216
9 0.1445 1412936 CI_Loader->_ci_init_class( ) ..\Loader.php:975
10 0.1462 1414368 CI_Session->__construct( ) ..\Loader.php:1099
11 0.1601 1483408 CI_Session->sess_read( ) ..\Session.php:106
12 0.1731 1486592 CI_DB_active_record->get( ) ..\Session.php:213
13 0.1735 1487800 CI_DB_driver->query( ) ..\DB_active_rec.php:963
14 0.1736 1488824 CI_DB_driver->simple_query( ) ..\DB_driver.php:299
15 0.1736 1488856 CI_DB_pdo_driver->_execute( ) ..\DB_driver.php:453
我不知道问题出在哪里。我的 sqlite ci_session 表是这样的:
CREATE TABLE ci_session (
session_id VARCHAR(40) DEFAULT '0' NOT NULL,
ip_address VARCHAR(45) DEFAULT '0' NOT NULL,
user_agent VARCHAR(120) NOT NULL,
last_activity INT(10) DEFAULT 0 NOT NULL,
user_data VARCHAR(255) NOT NULL,
PRIMARY KEY (session_id)
);
我想这很好(除了我没有包括原始 SQL 语句的最后一行):
KEY `last_activity_idx` (`last_activity`)
我也很确定问题与此无关,但以防万一:原始 MySQL 表位于“将会话数据保存到数据库”下的 here。
【问题讨论】:
-
你使用的是mysql还是SQLlite?你知道codeigniter有一个database.php文件在哪里设置数据库驱动?
-
我当然知道..我设置了database.php,所以它使用SQLite,它的工作原理就像一个魅力..当我尝试使用“将会话数据保存到数据库”选项时出现问题..事情发生了错了,它显示了我上面写的内容..
-
哪个是ci版本?我在 2.1 上,该文件夹名为 /pdo/ 没有在 /core/database/drivers 下.. 有一个名为 /sqlite乙>!我认为您正在使用旧的 CI 版本或未来的版本:D
-
nha,我正在使用最新的 CI ..也许你真的可以帮助做一个测试,启用 ci_session 保存到数据库..我刚刚测试了关于 CI 版本等的所有理论内容,我正在一个 php/CI 开发人员已经 5 年了,但真的想不通:)
-
我正在使用 CI 2.1.3(最新稳定版本)
标签: php codeigniter session sqlite pdo