PHP应用程序无法与某些MYSQL数据库进行通信

时间:2016-02-23 02:44:31

标签: php mysql database iis mysqli

我有一个PHP网络应用程序,直到今天一直工作正常(它位于Windows / IIS服务器上)。当我尝试访问连接到MYSQL数据库的页面时,我在firefox中得到一个空白页面。在IE中我得到500内部服务器错误。普通的PHP工作正常,它只是当我尝试连接到数据库时。 mysqli连接没有给出任何错误消息。

奇怪的是 - 我在同一台服务器上安装了phpmyadmin并且工作正常,我可以看到我的数据库并与之交互。

我在服务器上还有另一个数据库工作正常,附加到该数据库的用户具有只读访问权限(因为它是一个存档数据库),但连接到它的PHP Web应用程序可以工作。

我尝试了什么?

  • 最初我认为这是一个用户问题,所以我在phpmyadmin中创建了一个具有完全权限的新用户,并使用它来改为使用PHP app登录,结果相同。
  • 然后我认为这是数据库的一个问题,所以我将数据和结构复制到一个新数据库,结果相同。
  • MYSQL.err日志文件没有错误,表示服务器正在接受连接(就像phpmyadmin工作一样)。

我甚至尝试过编写测试脚本:

<?php
//Debugging
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);

include "settings.php";

echo $HOST . "<br>";
echo $DBNAME . "<br>";
echo $DBUSERNAME . "<br>";
echo $DBPASSWORD . "<br>";

$CON = new mysqli($HOST, $DBUSERNAME, $DBPASSWORD, $DBNAME);

//Check the connection and report error if it failed
if ($CON->connect_errnum > 0)
{
    die('Unable to connect to database [' . $CON->connect_error . ']');
}

$result = $CON->query("select user() AS us");

if (!$result)
        die("There was an error running the query [" .$CON->error ."]");
}

while($row = $result->fetch_assoc())
{
    echo $row["us"] . "<br>";
}
?>

如果我没有$result = $CON->query("select user() AS us");向下的代码,它会显示4个值。一旦我加入它,我就会得到500内部服务器错误页面。

我无法弄清楚发生了什么或从哪里开始寻找。

1 个答案:

答案 0 :(得分:0)

我的一个支持类中有一个语法错误,这导致页面在进入数据库连接之前失败。因为我的错误报告被关闭了,所以我看不到这一点(即使我认为它已经开启)。我必须进入PHP.ini并将display_errors = off设置为display_errors = on。然后显示错误消息。