After upgrade Codeigniter to version 3.0 I get error DB after trying call any controller:
Error Number: 1064
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `id` = 'd1d384b0ceed0bd72fa210337acc666aab1a04e5'' at line 2
SELECT `data` WHERE `id` = 'd1d384b0ceed0bd72fa210337acc666aab1a04e5'
Filename: libraries/Session/drivers/Session_database_driver.php
When I reload page, I get that again with a other generated hash session. How to fix?
In config.php
I set session store: $config['sess_driver'] = 'database';
I looked at file where is a error(line 138):
public function read($session_id)
{
if ($this->_get_lock($session_id) !== FALSE)
{
// Needed by write() to detect session_regenerate_id() calls
$this->_session_id = $session_id;
$this->_db
->select('data')
->from($this->_config['save_path'])
->where('id', $session_id);
if ($this->_config['match_ip'])
{
$this->_db->where('ip_address', $_SERVER['REMOTE_ADDR']);
}
if (($result = $this->_db->get()->row()) === NULL) // Line 138
{
$this->_fingerprint = md5('');
return '';
}
$this->_fingerprint = md5(rtrim($result->data));
$this->_row_exists = TRUE;
return $result->data;
}
$this->_fingerprint = md5('');
return '';
}
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…