无法在codeigniter中自动/手动加载数据库库

时间:2012-12-26 11:36:03

标签: php windows codeigniter

我无法在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;

4 个答案:

答案 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