[英]database error 1054 in codeigniter
我試圖做一個OTH應用程序,我收到此錯誤
發生數據庫錯誤
錯誤號碼:1054
“字段列表”中的未知列“數據”
SELECT
data
FROMci_sessions
WHEREid
='dd8fddaabb45c365fbf27a6fdc5ea60d59f569e4'ANDip_address
=':: 1'文件名:libraries / Session / drivers / Session_database_driver.php
行號:160
這是Session_database_driver.php
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)
{
$this->_fingerprint = md5('');
return '';
}
// PostgreSQL's variant of a BLOB datatype is Bytea, which is a
// PITA to work with, so we use base64-encoded data in a TEXT
// field instead.
$result = ($this->_platform === 'postgre')
? base64_decode(rtrim($result->data))
: $result->data;
$this->_fingerprint = md5($result);
$this->_row_exists = TRUE;
return $result;
}
$this->_fingerprint = md5('');
return '';
}
根據有關Sessions
的CI手冊, ci_sessions
表的基本格式為:
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`)
);
在您的PHP代碼中,您使用的是不同的字段:
$this->_db
->select('data')
->from($this->_config['save_path'])
->where('id', $session_id);
因此,通過將代碼更改為:
$this->_db
->select('user_data')
->from($this->_config['save_path'])
->where('session_id', $session_id);
你的代碼應該有效。
我認為正確的解決方案是檢查您的數據庫是否正確創建。
CREATE TABLE IF NOT EXISTS `ci_sessions` (
`id` varchar(40) NOT NULL,
`ip_address` varchar(45) NOT NULL,
`timestamp` int(10) unsigned DEFAULT 0 NOT NULL,
`data` blob NOT NULL,
PRIMARY KEY (id),
KEY `ci_sessions_timestamp` (`timestamp`)
);
我不同意更改CI驅動程序文件
我遇到了同樣的問題,我已經改變了......
$this->_db
->select('data')
->from($this->_config['save_path'])
->where('id', $session_id);
到 - >>>>>
$this->_db
->select('user_data')
->from($this->_config['save_path'])
->where('session_id', $session_id);
如果我在config.ph中執行此操作,則問題將存在
$config['sess_expiration'] = 7200;
$config['sess_expire_on_close'] = TRUE;
$config['sess_encrypt_cookie'] = TRUE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = TRUE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.