2016-04-03 126 views
0

我正在使用Codeigniter框架構建網站。我收到此錯誤:Codeigniter中的數據庫錯誤1146

Error Number: 1146 
Table 'users.ci_sessions' doesn't exist 

SELECT `data` FROM `ci_sessions` WHERE `id` = '5e47bcb40c2954bd7329ff3fbcf253007a0563cc' 

Filename: libraries/Session/drivers/Session_database_driver.php 
Line Number: 166 

這裏是如何定義會話: 在config.php:

$config['sess_driver'] = 'files'; 
$config['sess_cookie_name'] = 'ci_session'; 
$config['sess_table_name'] = 'ci_sessions'; 
$config['sess_expiration'] = 7200; 
$config['sess_save_path'] = NULL; 
$config['sess_match_ip'] = FALSE; 
$config['sess_time_to_update'] = 300; 
$config['sess_regenerate_destroy'] = FALSE; 
$config['sess_encrypt_cookie'] = FALSE; 
$config['sess_use_database'] = FALSE; 
$config['sess_driver'] = 'database';  // changed from file 
$config['sess_save_path'] = 'ci_sessions'; // table name 
//$config['sess_save_path'] = sys_get_temp_dir(); 
$config['sess_match_ip']  = FALSE; 
$config['sess_match_useragent'] = TRUE; 
$config['sess_time_to_update'] = 300; 
$config['sess_use_database'] = TRUE; 

在autoload.php:

$autoload['libraries'] = array('database','session'); 

我已閱讀https://ellislab.com/codeigniter/user-guide/libraries/sessions.html和遵循所有步驟以正確訪問會話。任何有關如何解決上述錯誤的建議?

+0

你有任何的表名爲'ci_sessions'在你的數據庫? –

+0

@MdMahfuzurRahman是的,我錯過了將它粘貼在這個問題中:'$ config ['sess_table_name'] \t \t ='ci_sessions';' – Irfana

+0

@Irfana只是一個註釋,是舊的和過時的用戶指南ellislab沒有處理codeigniter更多的版本3和2用戶指南請使用這些鏈接http://www.codeigniter.com/docs – user4419336

回答

2

其實你都會話驅動程序,即databasefile混合起來,所以如果你想使用這裏閱讀文件驅動程序的官方文檔: http://www.codeigniter.com/userguide3/libraries/sessions.html#files-driver

如果你要使用的數據庫驅動程序: http://www.codeigniter.com/userguide3/libraries/sessions.html#database-driver

另外,我在自動加載庫中遇到了一個奇怪的錯誤。

請自動加載陣列添加session驅動程序之前database驅動程序:

$autoload['libraries'] = array('session','database');

+0

它現在有效,謝謝隊友。 – Irfana

2
  1. 請注意,當您使用3.0.x時,您鏈接的用戶指南適用於2.2.0版本,不再是官方的。
  2. 閱讀的實際用戶指南這裏:http://www.codeigniter.com/userguide3/libraries/sessions.html
  3. 不要只是告訴我們您已經閱讀並執行了所有步驟,但真正做到這一點 - 你有沒有在數據庫中創建一個ci_sessions表。 錯誤消息本身告訴你這一點。
+0

我讀了你建議的鏈接,我相信我已經按照正確使用會話庫的步驟,如果你相信我在配置文件中寫的是錯誤的,如果你能糾正我,我將不勝感激。謝謝。我編輯了這個問題。 – Irfana

+0

你的'ci_sessions'表*不存在* - 這就是錯誤信息所說的。你不能通過修改配置文件來解決這個問題。 – Narf

0

小心這些參數config.php

$config['sess_driver'] = 'database'; 
$config['sess_cookie_name'] = 'ci_session'; //ci_session don't add 's' in last 
$config['sess_expiration'] = 7200; 
$config['sess_save_path'] = 'ci_sessions'; //ci_sessions add 's' in last 
$config['sess_match_ip'] = FALSE; 
$config['sess_time_to_update'] = 300; 
$config['sess_regenerate_destroy'] = FALSE;