以下代码有问题:
<?php
$con = mysql_connect("localhost","","");
if (!$con){
die('Could not connect: ' . mysql_error());
}
mysql_select_db("abc", $con);
$ids = intval($_GET['id']);
if ($ids==0){
$id = rand (0,50);
header("Location: http://index.php?id=$id");
}
?>
<html>
<body>
<?php
$result = mysql_query("SELECT * FROM abcdatabase WHERE id = '$id'");
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
$row = mysql_fetch_array($result);
echo "{$row['username']}<br>";
?>
</body>
</html>
重定向到新页面后,如http://index.php/?id=38
,我认为MySQL数据库没有加载。因为线路echo "{$row['username']}<br>";
不显示任何内容,也不显示任何错误消息。事实上我不明白我犯了什么错误。我是一名新手程序员。请任何人帮我解决这个问题。
最佳答案
对于初学者来说,您不应该再使用 mysql 库,因为它已被弃用。使用 mysqli 库代替:http://php.net/manual/en/book.mysqli.php
其次,你有一个小错误。在第 8 行中,您设置了 $ids 变量,但在第 19 行中,您没有使用它。你在那里使用 $id ,它会是空的。因此,您搜索 id = empty 并且查询成功(您得到结果:未找到记录),因此没有错误消息,但您也没有获得名称(因为未找到记录)。所以更换
$result = mysql_query("SELECT * FROM abcdatabase WHERE id = '$id'");
与
$result = mysql_query("SELECT * FROM abcdatabase WHERE id = '$ids'");
一般来说,如果您的代码期望找到 1 个结果,还请添加一项检查以确保您确实找到了一个结果,如果没有找到,则添加一条错误消息。替换
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
与
if (!$result) {
echo 'Could not run query: ' . mysql_error();
exit;
}
elseif (mysql_num_rows($result) <> 1) {
echo 'No records found';
exit;
}
第三,像 Joachim 解释的那样,存在标题错误。
关于php - 重定向到新页面后 MySQL 数据库未加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17739352/