CodeIgniter - 数据库自动加载的空白页面

时间:2011-07-13 14:23:42

标签: php database codeigniter autoload

自从今天早上将我的网站从本地计算机迁移到服务器后,我遇到了一个问题。

为了替换上下文,我使用框架CodeIgniter开发了一个网站,迁移前的所有内容都运行良好。

经过长时间的研究,似乎当我说出这个:

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

我的网站上有一个空白页面,日志中没有任何php / ci错误。

如果我这样说:

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

网站运行正常(好吧,我无法登录,但我没有空白页)。

我在php.ini文件中添加了mysql.so,但它也没有帮助我。

有人已经遇到过这个问题吗?你怎么能解决它?

谢谢!

11 个答案:

答案 0 :(得分:7)

在application / config / database.php中 检查

$db['default']['dbdriver'] = 'mysql';

设置为

$db['default']['dbdriver'] = 'mysqli';

答案 1 :(得分:4)

我遇到类似的问题,空白页似乎与加载数据库有关,无论是通过自动加载还是在模型构造函数中调用$this->load->database();。我最后通过注释extension=php_pdo_mysql.dll并取消注释extension=php_mysql.dll(即关闭PDO)来修改我的'php.ini'文件。我正在运行Windows 8.1,Apache 2.2和PHP 5.3.27。

这个答案与另一个答案类似,但我刚刚注册后无法添加评论以澄清。我花了几个小时和很多谷歌搜索来解决,所以希望这对某人有所帮助。

答案 2 :(得分:2)

您确定您的数据库连接凭据是否正确?如果您切换服务器,这似乎可能是问题。

此外,CodeIgniter为生产环境设置error_reporting(0) - 因此为空白页面。检查您的日志目录(可以通过网络服务器进程编写吗??)以获取任何其他信息。

答案 3 :(得分:1)

请重新启动您的网络服务器,然后重试。

使用phpinfo();

创建一个新的info.php文件
<?php

phpinfo();

?>

如果加载

,查看mysql扩展是否正在加载

尝试为你的directoy做一个chmod 0777

答案 4 :(得分:1)

如果您没有安装php的mysql模块,就会发生这种情况。在Windows中,我相信这附带了php安装程序。如果你在Linux上,例如在Fedora上,这就是你安装它的方式:

sudo yum -y install php-mysql

安装后重新启动Web服务器。假设你正在使用apache httpd:

sudo service httpd restart

现在你应该再次看到这些页面(假设你在conf / database.php中有正确的设置)。

答案 5 :(得分:1)

我刚刚遇到这个错误,在调试MYSQL驱动程序后我发现了问题。

问题是在数据库配置文件中我使用MYSQL作为驱动程序,当它在服务器上安装了MYSQLI时,只需在配置文件上更改它就完成了。

希望这有助于某人。

答案 6 :(得分:0)

听起来您的数据库配置不正确,并且您的PHP安装阻止了错误。

查看您的日志文件或尝试添加

ini_set('display_errors',1);
error_reporting(E_ALL|E_STRICT);

index.php中,看看你得到了什么

答案 7 :(得分:0)

对我来说,使用Z-WAMP遇到同样的问题,不得不从php.ini取消注释“extension = php_mysql.dll”。还分配了“mysql.default_port = 3306”和“mysql.default_host = localhost”。希望它可以帮助那里的人

答案 8 :(得分:0)

对于那些使用linux(尤其是ubuntu)但仍在获取空白页面的人,请执行以下操作:

  1. sudo apt-get install php5 libapache2-mod-php5 php5-mysql php5-cli mysql-server
  2. sudo service apache2 restart
  3. $autoload['libraries'] = array('database');

答案 9 :(得分:0)

安装php5-pgsql为我修复它(在Ubuntu上)

答案 10 :(得分:0)

只需转到application / config / database.php并找到

$db['default']['dbdriver'] = 'mysql';

'mysql'替换为'mysqli'

$db['default']['dbdriver'] = 'mysqli';

就是这样!