-1

我目前正在尝试使用 mysqli 制作脚本,但是当我运行它时,它返回 500 内部错误,但是当我删除 fatch_array 时,它在没有它的情况下运行。我一直在使用 PHP.Net mysqli_ 手册。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_*

4

2 回答 2

0

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

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

它要么是空的,要么是具有使其错误查询的值。

或者您的表名错误。

于 2012-08-29T18:00:00.460 回答
-1

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

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

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

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

于 2012-08-29T18:02:29.777 回答