Php 无法在codeigniter中自动/手动加载数据库库
我无法在CodeIgniter的默认提取代码中加载数据库库 1) 通过autoload.phpPhp 无法在codeigniter中自动/手动加载数据库库,php,windows,codeigniter,Php,Windows,Codeigniter,我无法在CodeIgniter的默认提取代码中加载数据库库 1) 通过autoload.php $autoload['libraries'] = array('database'); 2) 内部控制器通过 $this->load->library("database"); 或 错误消息:由于发生内部服务器错误,无法显示页面 环境:CodeIgniter 2.1.3、IIS上的PHP5.2.13(ISAPI)、MySQL(5.0.45-community-nt)、Plesk 我已经
$autoload['libraries'] = array('database');
2) 内部控制器通过
$this->load->library("database");
或
错误消息:由于发生内部服务器错误,无法显示页面
环境:CodeIgniter 2.1.3、IIS上的PHP5.2.13(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;
您可以检查服务器日志,也可以通过config.php启用CI日志
/*
|--------------------------------------------------------------------------
| 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;
转到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,并检查/application
文件夹中是否有775 chmod/logs
目录,如果没有创建该目录
,CI将自动在该目录中创建日志文件
您可以通过这种方式检查任何CI错误
正如您在日志文件中报告的那样
更改/config目录下的database.php第50行:
$db['default']['pconnect'] = TRUE;
到
好的,根据日志,当我设置
$db['default']['pconnect']=TRUE代码>
到
$db['default']['pconnect']=FALSE代码>
数据库库已加载。我遇到了同样的问题,花了大约5个小时的时间通过堆栈跟踪和mysql日志进行故障排除。原来原因是无关的,但我在这里张贴,以挽救任何人的麻烦,我有
我从头开始构建虚拟机,但我显然忘记了为php5安装MySQL驱动程序。我的症状完全一样,只是一个空白屏幕——根本没有反应。对于将来看到这种情况的人,请确保您拥有mysql驱动程序!!30秒的定位 您似乎没有安装php5 mysql。
在EC2或VM中,请记住安装php5 mysql
sudo-apt-get安装php5-mysql
您的代码中有一个重复的函数,或者可能是php错误。您是否在本地测试了Codeigniter代码。。如果是,则应显示有关错误的更多信息。如果您正确配置了数据库设置,请检查此约定错误,很可能是db config错误。你能发布你的数据库配置文件吗?我在问题中添加了数据库设置。使用相同的用户名和密码,我可以使用普通PHP进行连接,但CodeIgniter会给我一个错误(当启用日志时),mysql\u pconnect()由于安全原因被禁用
和无法连接到数据库
。启用日志后,我会得到严重性:警告-->mysql\u pconnect()由于安全原因已被禁用…\mysql\mysql\u driver.php 91和错误-2012-12-27 02:25:09-->无法连接到数据库
。但是,使用相同的用户名和密码,我可以用普通PHP连接到数据库。确定检查database.PHP行50$db['default']['pconnect']=TRUE;试一试FALSE@Ali不要忘记检查答案;)
$db['default']['pconnect'] = FALSE;