【发布时间】:2017-07-19 21:10:30
【问题描述】:
如何自动创建 codeigniter 会话表? 当我在控制器构造函数中使用创建者函数并且会话表不存在时,我看到 codeigniter 错误。我的代码是:
function admin() {
parent::__construct();
ob_start();
if(!$this->db->table_exists('session'))//for `first time` run.
$this->utilmodel->create_session_table(); //this function create session table with CI structure
ob_end_clean();
$this->load->library('session');
...
}
我明显的错误是:
Error Number: 1146
Table 'dbs.session' doesn't exist
INSERT INTO `session` (`session_id`, `ip_address`, `user_agent`,
`last_activity`, `user_data`) VALUES
('0a78608576684ebc2c0050b8f4810f', '127.0.0.1', 'Mozilla/5.0
(Windows NT 6.1; rv:32.0) Gecko/20100101 Firefox/32.0
AlexaToolbar/alxf-2.21', 1001550875, '')
Filename: C:\wamp\www\folder\system\database\DB_driver.php
Line Number: 330
之后我就知道了
parent::__construct()
我的错误发生了。
【问题讨论】:
-
需要更深入地了解您的代码。我也不确定您为什么要即时创建表格。您最好使用数据库迁移脚本,而不是动态创建表。
-
是的,你需要使用钩子。更具体地说,
pre_system会起作用。 -
由于我的系统功能,我应该即时创建表。它有一个配置面板,用于配置基本系统设置等。
-
是的,你说得对,我以前没想过钩子。如果我的问题解决了,我会在这里说。无论如何,非常感谢。
标签: php codeigniter session