4

我无法在 CodeIgniter 的默认提取代码中加载数据库库

1) 通过 autoload.php

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

2)内部控制器通过

$this->load->library("database");

或者

$CI =& get_instance();
$CI->load->database();

错误消息:由于发生内部服务器错误,无法显示页面。

环境: CodeIgniter 2.1.3、IIS (ISAPI) 上的 PHP 5.2.13、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;
4

4 回答 4

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;
于 2012-12-26T23:25:54.797 回答
2

好的,根据日志,当我设置

$db['default']['pconnect'] = TRUE;

$db['default']['pconnect'] = FALSE;

数据库库已加载。

于 2012-12-27T08:48:01.023 回答
0

我遇到了同样的问题,花了大约 5 个小时排除故障,挖掘堆栈跟踪和 mysql 日志。事实证明原因是无关的,但我在这里发帖是为了避免任何人遇到我遇到的麻烦。

我从头开始构建我的虚拟机,但我显然忘记为 php5 安装 MySQL 驱动程序。我的症状完全一样,一个空白的屏幕 - 根本没有反应。对于将来看到这个的任何人,请确保您拥有 mysql 驱动程序!30 秒修复。

于 2013-09-12T15:45:49.800 回答
0

看来您没有安装 php5-mysql。在你的 EC2 或你的 VM 中,记得安装 php5-mysql

sudo apt-get install php5-mysql

于 2014-02-09T14:07:05.310 回答