PHP Mysqli Fetch_array导致500内部错误


PHP Mysqli Fetch_array causes 500 Internal error

我目前正试图使用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_*

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

原因之一是$GetPath = $_GET['p'];

它要么是空的,要么有一个值使它成为错误的查询。

或者您有一个错误的表名。

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

$SqlQuery = $Sql->query($SqlData);
if (!$SqlQuery) {
    echo $mysqli->error;
}

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