<?php // 连接到数据库 $conn = mysqli_connect("localhost", "root", "123456", "exam"); // 检查连接是否成功 if (!$conn) { die("连接失败: " . mysqli_connect_error()); } // 获取要删除行的id $id = $_GET["id"]; // 构建 SQL 删除语句 $sql = "DELETE FROM books WHERE id=$id"; // 执行 SQL 删除语句 if (mysqli_query($conn, $sql)) { echo "数据已成功删除"; } else { echo "删除数据失败: " . mysqli_error($conn); } // 关闭连接 mysqli_close($conn); ?>这段代码为什么会显示删除数据失败?
时间: 2024-02-29 09:56:46 浏览: 47
这段代码可能会显示删除数据失败的原因有以下几种:
1. 在执行 SQL 语句时出错,可能是 SQL 语句错误或者数据库连接失败。
2. 要删除的数据不存在,此时 SQL 语句也会执行成功,但是不会删除任何数据,因此会显示删除数据失败。
3. SQL 语句执行成功,但是执行的语句并没有删除任何数据,例如当 `$id` 参数为空时,SQL 语句不会执行删除操作,因此也会显示删除数据失败。
为了确定具体的原因,可以在代码中加入调试信息,例如输出 SQL 语句和要删除的数据,以及查看 SQL 执行时的错误信息。
相关问题
检查这段代码的错误并修改实现与bookshelf.php的跳转<?php //连接数据库 $servername = "127.0.0.12"; $username = "roots"; $password = "1234root"; $dbname = "zkw"; $conn = mysqli_connect($servername, $username, $password, $dbname); if (!$conn) { die("连接失败: " . mysqli_connect_error()); } //查询图书分类 $sql = "SELECT * FROM categories"; $result = mysqli_query($conn, $sql); mysqli_close($conn); //跳转到bookshelf.php页面 header("Location: bookshelf.php"); ?> <!DOCTYPE html> <html> <head> <title>图书分类</title> </head> <body> <h2>图书分类</h2> <ul> <?php while ($row = mysqli_fetch_assoc($result)) { ?> <li><a href="books.php?category=<?php echo $row["id"]; ?>"><?php echo $row["name"]; ?></a></li> <?php } ?> </ul> </body> </html>
以下是修改后的代码:
<?php
//连接数据库
$servername = "127.0.0.12";
$username = "roots";
$password = "1234root";
$dbname = "zkw";
$conn = mysqli_connect($servername, $username, $password, $dbname);
if (!$conn) {
die("连接失败: " . mysqli_connect_error());
}
//查询图书分类
$sql = "SELECT * FROM categories";
$result = mysqli_query($conn, $sql);
//关闭数据库连接
mysqli_close($conn);
//跳转到bookshelf.php页面
header("Location: bookshelf.php");
exit;
?>
<!DOCTYPE html>
<html>
<head>
<title>图书分类</title>
</head>
<body>
<h2>图书分类</h2>
<ul>
<?php while ($row = mysqli_fetch_assoc($result)) { ?>
<li><a href="books.php?category=<?php echo $row["id"]; ?>"><?php echo $row["name"]; ?></a></li>
<?php } ?>
</ul>
</body>
</html>
修改的主要内容包括:
1. 在跳转到 bookshelf.php 页面后使用 exit 终止脚本,以避免在跳转后继续执行页面代码。
2. 将关闭数据库连接的代码移动到跳转代码之前,以确保查询结果可以正常使用。
3. 将跳转代码放在顶部,以确保在输出 HTML 代码之前执行。
这是我连接数据库的代码<?php function getConn() { $host = "localhost"; $user = "root"; $password = "12345678"; $database = "cwyy"; //连接数据库 $conn = mysqli_connect($host, $user, $password, $database); if ($conn->error) { die("连接数据库[$database]失败!"); } return $conn; } ?>
你的连接数据库的代码看起来没有问题,但是建议在连接数据库之前,先检查一下 `mysqli_connect` 函数是否返回了错误,以便及时发现问题。你可以尝试在连接数据库之前添加以下代码:
```
$conn = mysqli_connect($host, $user, $password, $database);
if (mysqli_connect_errno()) {
die("数据库连接失败: " . mysqli_connect_error());
}
```
这样,如果连接失败,就可以获取到详细的错误信息,方便排查问题。另外,建议将数据库连接信息存储在单独的配置文件中,避免在代码中直接暴露敏感信息。
阅读全文