Я не могу загрузить библиотеку баз данных в извлеченный код по умолчанию CodeIgniter
1) через autoload.php
$autoload['libraries'] = array('database');
2) Внутренний контроллер через
$this->load->library("database");
или
$CI =& get_instance(); $CI->load->database();
Сообщение об ошибке: страница не может отображаться, поскольку произошла ошибка внутреннего сервера.
Окружающая среда: CodeIgniter 2.1.3, PHP 5.2.13 в IIS (ISAPI), MySQL (5.0.45-community-nt), Plesk.
Я подтвердил, что код, написанный простым PHP, позволяет мне получить доступ к базе данных.
Как только я удалю эту библиотеку, я вижу страницу. Я могу загрузить другие библиотеки, такие как сеанс, и мою собственную библиотеку. Любые идеи, что мне не хватает?
Вот настройки моей базы данных:
$active_record = TRUE; $db['default']['hostname'] = 'localhost'; $db['default']['username'] = 'username'; $db['default']['password'] = 'password'; $db['default']['database'] = 'databasename'; $db['default']['dbdriver'] = 'mysql'; $db['default']['dbprefix'] = ''; $db['default']['pconnect'] = TRUE; $db['default']['db_debug'] = TRUE; $db['default']['cache_on'] = FALSE; $db['default']['cachedir'] = ''; $db['default']['char_set'] = 'utf8'; $db['default']['dbcollat'] = 'utf8_general_ci'; $db['default']['swap_pre'] = ''; $db['default']['autoinit'] = TRUE; $db['default']['stricton'] = FALSE;
вы можете в любом случае проверить журналы своего сервера или включить журналы CI с помощью config.php
перейдите к строке 206 вашего config.php
/* |-------------------------------------------------------------------------- | Error Logging Threshold |-------------------------------------------------------------------------- | | If you have enabled error logging, you can set an error threshold to | determine what gets logged. Threshold options are: | You can enable error logging by setting a threshold over zero. The | threshold determines what gets logged. Threshold options are: | | 0 = Disables logging, Error logging TURNED OFF | 1 = Error Messages (including PHP errors) | 2 = Debug Messages | 3 = Informational Messages | 4 = All Messages | | For a live site you'll usually only enable Errors (1) to be logged otherwise | your log files will fill up very fast. | */ $config['log_threshold'] = 4;
поставьте значение 4 и проверьте, есть ли у вас каталог 775 chmod /logs
в вашей папке /application
, если он не создается, CI автоматически создаст файлы журнала внутри этого каталога.
вы сможете проверить любую ошибку CI таким образом
Как вы сообщили из файла журнала
change, database.php строка 50 в каталоге / config:
$db['default']['pconnect'] = TRUE;
в
$db['default']['pconnect'] = FALSE;
ОК, на основе журналов, когда я установил
$db['default']['pconnect'] = TRUE;
в
$db['default']['pconnect'] = FALSE;
загрузилась библиотека базы данных.
У меня была такая же проблема, и мы потратили около 5 часов на поиск неисправностей, прокладывая путь через трассировку стека и журналы mysql. Оказывается, причина была несвязанной, но я отправляю здесь, чтобы спасти всех, кого я испытывал.
Я строю свою виртуальную машину с нуля, и я, очевидно, забыл установить драйвер MySQL для php5. Симптомы, которые у меня были, были точно такими же, пустой экран – вообще никакого ответа. Для всех, кто видит это в будущем, убедитесь, что у вас есть драйвер mysql! 30-секундное исправление.
Кажется, у вас нет вашего php5-mysql. В EC2 или вашей виртуальной машине не забудьте установить php5-mysql
sudo apt-get install php5-mysql