我目前正在尝试使用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 _ *
答案 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实际上是一个变量。