我无法在CodeIgniter的默认提取代码中加载数据库库
1)通过autoload.php
$autoload['libraries'] = array('database');
2)通过控制器内部
$this->load->library("database");
或
$CI =& get_instance();
$CI->load->database();
错误消息:由于发生内部服务器错误,无法显示该页面。
环境: CodeIgniter 2.1.3,IIS 5.2(ISAPI)上的PHP 5.2.13,MySQL(5.0.45-community-nt),Plesk。
我已经确认用普通PHP编写的代码允许我访问数据库。
一旦删除此库,我就可以看到该页面。我能够加载其他库,如session和我的自定义库。我缺少什么想法?
这是我的数据库配置设置:
$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;
答案 0 :(得分:3)
您可以检查服务器日志,也可以通过config.php启用CI日志
转到config.php的第206行
/*
|--------------------------------------------------------------------------
| 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
目录,如果不是create that
,CI将自动在该目录中创建日志文件。
您将能够以这种方式检查任何CI错误
正如您从日志文件中报告的那样
在/ config目录下更改,database.php第50行:
$db['default']['pconnect'] = TRUE;
到
$db['default']['pconnect'] = FALSE;
答案 1 :(得分:2)
好的,基于日志,当我设置
$db['default']['pconnect'] = TRUE;
到
$db['default']['pconnect'] = FALSE;
数据库库已加载。
答案 2 :(得分:0)
我遇到了同样的问题,花了大约5个小时来排查堆栈跟踪和mysql日志。事实证明原因是无关的,但我在这里张贴以拯救任何人我遇到的麻烦。
我从头开始构建我的VM,显然我忘了为php5安装MySQL驱动程序。我的症状完全一样,一个空白的屏幕 - 根本没有反应。对于将来看到这个的人,请确保你有mysql驱动程序! 30秒修复。
答案 3 :(得分:0)
好像你没有安装php5-mysql。 在你的EC2或你的VM中,记得安装php5-mysql
sudo apt-get install php5-mysql