php - 重定向到新页面后 MySQL 数据库未加载

标签 php mysql random header

以下代码有问题:

<?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/

相关文章:

php - 如何在 PDO 中使用 SELECT IFNULL?

java - 解析文本行并添加到 MySQL

mysql - 子查询返回多于 1 行

thread-safety - PRNG 需要线程安全吗?

php - PDOStatement::fetch 偶尔会返回 false,但 errorInfo() 为空

php - 如何在数据库中搜索数组在哪里

php - 如何在 php 代码中使用动画 css 更改表单

mysql - 具有未知文件夹结构和数据库文件的 CakePHP 2.x 项目,使用 EnvSwitcher 类

php - 我不明白 PHP "Daily quote"教程

python - 在 Python 中生成一个随机字母