2016-04-03 3 views
0

Я использую фреймворк Codeigniter для создания веб-сайта. Я получаю эту ошибку:Ошибка базы данных 1146 в Codeigniter

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 = 'ci_sessions';' – Irfana

+0

@Irfana Только примечание, которое является устаревшим и устаревшим руководством пользователя ellislab, не обратитесь к codeigniter больше за версии 3 и 2 руководства пользователя, пожалуйста, используйте эти ссылки http://www.codeigniter.com/docs – user4419336

ответ

2

На самом деле вы путаете как сеанс водителей т.е. database и file, так что если вы хотите использовать файл драйвера прочитать здесь официальную документацию: 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. Обратите внимание, что руководство пользователя, к которому вы привязались, относится к версии 2.2.0 и не является официальным, в то время как вы используете 3.0.x.
  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; 
Смежные вопросы