首页 文章

SQL错误 - CodeIgniter登录错误

提问于
浏览
1

我正在尝试在学习CodeIgniter时创建一个登录功能 . 我已经验证用户名和密码都是正确的 . 密码使用Phppass codeigniter密码库加密 .

这是我登录正确信息后得到的错误 .

发生数据库错误错误号:1064您的SQL语法中有错误;查看与您的MySQL服务器版本对应的手册,以便在附近使用正确的语法

'(`session_id`, `ip_address`, `user_agent`, `last_activity`)
 VALUES ('826f937fed9' at line 1

 INSERT INTO (`session_id`, `ip_address`, `user_agent`,
 `last_activity`) VALUES ('826f937fed9185e2c121ec06b1b44b6a', '::1',
 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/53', 1442454002)

文件名:libraries / Session.php行号:327

2 回答

  • 0

    正如Jarred Farrish和Darack在PHP聊天室指出错误就在我面前!我忘记将我的CodeIgniter数据库tbl名称添加到配置中!好吧,不完全是 . 我以为我正确地遵循了CodeIgniter配置中的指令,但显然没有!由于文档略有不同,您实际上必须添加

    $config['sess_table_name'] = 'ci_sessions';
    

    到你的config.php文件 . 一旦添加,CodeIgniter将正确地将用户数据存储在提供的表名中 .

  • 0

    注意:Session类具有内置的垃圾收集功能,可以清除过期的会话,因此您无需编写自己的例程来执行此操作 .

    这意味着您无需手动插入 . 它会自动执行 .


    config/config.php 改变这个

    $config['sess_use_database']    = FALSE;
    

    对此

    $config['sess_use_database']    = TRUE;
    

    和会话表应该是

    CREATE TABLE IF NOT EXISTS  `ci_sessions` (
        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) unsigned DEFAULT 0 NOT NULL,
        user_data text NOT NULL,
        PRIMARY KEY (session_id),
        KEY `last_activity_idx` (`last_activity`)
    );
    

    检查会话表名称是

    $config['sess_table_name'] = 'ci_sessions';
    

相关问题