【问题标题】:1064 error with CodeIgniter in ci_sessions tableci_sessions 表中的 CodeIgniter 出现 1064 错误
【发布时间】:2015-07-15 17:12:07
【问题描述】:
// Run the update query
$this->CI->db->where('session_id', $this->userdata['session_id']);
$this->CI->db->update($this->sess_table_name, array('last_activity' => $this->userdata['last_activity'], 'user_data' => $custom_userdata));

我在 CodeIgniter 中使用会话时遇到问题。我下载了 de las CI 版本,我必须修改很多东西才能使其正常工作,但是,当我尝试登录我的网站时,我遇到了这个问题,1064 错误 MySQL: p>

您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本,以便使用正确的语法 靠近'SET last_activity = 1430854831, user_data = 'a:8:{s:9:\"user_data\";s:0:\"\"' 在第 1 行

更新集last_activity = 1430854831, user_data = 'a:8:{s:9:\"user_data\";s:0:\"\";s:10:\"id_cliente\";s:1:\"2\";s:4:\ "姓名\";s:14:\"马丁 Sosa\";s:8:\"lastName\";s:6:\"Plaz\";s:9:\"lastName2\";s:4:\"Loah\";s:15:\" numberExpedient\";s:5:\"00002\";s:5:\"email\";s:27:\"mart94@hotmail.com\";s:3:\"rol\";s: 1:\"1\";}' 在哪里session_id = '6b4cceb3679bdc63a4534c6be0efd54f'

文件名:libraries/Session.php

行号:289

【问题讨论】:

  • 根据您的错误$this->sess_table_name 为空,请确保您在update() 函数中提供表名
  • 我已经编辑了 Sessions.php 文件,并向 sess_table_name 添加了一个值,但是,消息相同,我检查了 mmy config.php 文件,但是变量不存在,它是 CI 的新版本,但是在我拥有的 CI 以前的版本中,config.php 中的变量,我不喜欢那个。 :(
  • 旧 config.php `$config['sess_cookie_name']='ci_session'; $config['sess_expiration'] =7200; $config['sess_expire_on_close']=FALSE; $config['sess_encrypt_cookie']=TRUE; $config['sess_use_database']=TRUE; $config['sess_table_name']='ci_sessions'; $config['sess_match_ip']=FALSE; $config['sess_match_useragent']=FALSE; $config['sess_time_to_update']=300; `
  • 新的 config.php 变量 new ` $config['sess_driver']= 'files'; $config['sess_cookie_name']='ci_session'; $config['sess_expiration']=7200; $config['sess_save_path']=NULL; $config['sess_match_ip']=FALSE; $config['sess_time_to_update']=300; $config['sess_regenerate_destroy']=假; ` PS:我不知道如何将我的代码与 de StackOverflow 标签放在一起:(

标签: php mysql sql codeigniter


【解决方案1】:

您缺少会话表名称

update TABLE_NAME set ...

$this->sess_table_name 设置正确吗?

检查您的配置文件:

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

另外,查看手册: http://www.codeigniter.com/userguide3/libraries/sessions.html

【讨论】:

  • 在新版本的CI(3.0)中,我在配置文件中没有那个变量,在/system/libraries/Sessions.php中有,但是,我不知道是否必须改变它们。
  • 在 CI3 中,默认 $config['sess_driver']='files';和 $config['sess_save_path'] = NULL;由于您将 sess_driver 设置为“数据库”,请尝试将 sess_save_path 更新为“ci_sessions”;
  • 我刚刚找到了这个链接codeigniter.com/user_guide/libraries/…这应该可以解决你的问题。
  • @MartinRafaelPérezLara 你找到解决方案了吗?
【解决方案2】:

将此添加到检查您的配置文件:

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

希望对您有所帮助...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    • 2018-01-26
    • 1970-01-01
    • 1970-01-01
    • 2018-10-09
    相关资源
    最近更新 更多