PHP Mysqli Fetch_array导致500内部错误

时间:2012-08-29 17:36:18

标签: php mysql mysqli

我目前正在尝试使用mysqli制作脚本,但是当我运行它时,它会返回500内部错误,但是当我删除fatch_array时,它会在没有它的情况下运行。 我一直在使用PHP.Net mysqli_ Manual。 PHP代码

<?php
{ /* Global Data */
$GetPath = $_GET['p'];
$SqlUser = "root";
$SqlPass = "***********";
$SqlHost = "localhost";
$SqlData = "Site";
}
{ /* Mysql Connect */
$Sql = new mysqli($SqlHost, $SqlUser, $SqlPass, $SqlData);
if ($Sql->connect_error) { die("Sorry, Could not connect (".$Sql->connect_errno.") ".$Sql->connect_error);}
}
{ /* Test */
$Page = $Sql->real_escape_string($GetPath);
$SqlData = "SELECT * FROM pages WHERE Page = '".$Page."'";
$SqlQuery = $Sql->query($SqlData);
$Data = $SqlQuery->fetch_array(MYSQLI_ASSOC);
echo $Data['Title'];
$Sql->close();
}
?>

那么是什么导致了这个?我使用了mysql_ /命令,现在我切换到mysqli _ *

3 个答案:

答案 0 :(得分:1)

你的代码很好。您的查询出错了。

导致它的一件事是$GetPath = $_GET['p'];

要么是空的,要么是一个使查询错误的值。

或者您的表名错误。

答案 1 :(得分:1)

您不应该假设您的查询成功:

$SqlQuery = $Sql->query($SqlData);

if (!$SqlQuery) {
    echo $mysqli->error;
}

在您的情况下$_GET['p']未定义,可能是导致您的查询失败的原因,但除非您检查错误,否则您永远不会知道。

答案 2 :(得分:0)

  

如何更改以下行:

if ($Sql->connect_error) { die("Sorry, Could not connect (".$Sql->connect_errno.") ".$Sql->connect_error);}
     

为:

if ($Sql->connect_error) { die("Sorry, Could not connect (".$Sql->connect_error.") ".$Sql->connect_error);}
     

请注意connect_errno错误

很抱歉......不是解决方案,忘了connect_errno实际上是一个变量。