我尝试使用此代码从 mysql 数据库中删除用户if (isset($_POST['user_delete'])) { $key = $_POST['keyToDelete']; $check = "DELETE FROM user WHERE id = ". $key or die(mysqli_error($connection)); $result2 = $connection->query($query); if($result2->num_rows >0){ $query_delete = "DELETE FROM user WHERE id =". $key or die(mysqli_error($connection)); var_dump($query_delete);} else {}但它不想删除我的数据库。但是 sql 已经正确了,我也得到了 id,因为我试图对其进行 var_dump。请帮助我的代码出了什么问题
1 回答
侃侃无极
TA贡献2051条经验 获得超10个赞
你这里有几个问题,
您
or die(mysqli_error($connection))
是查询字符串,而不是实际查询。此外,与其手动检查错误,不如配置为自动抛出错误。为此,将以下行添加到连接代码中:mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
你试图删除它两次?尽管永远不会执行第二个查询,但您只需定义查询字符串(并且永远不要运行它)。
num_rows
仅可用于选择语句。您想affected_rows
检查查询是否确实删除了任何数据。您没有使用准备好的语句。
if (isset($_POST['user_delete'])) {
$key = $_POST['keyToDelete'];
$query = "DELETE FROM user WHERE id = ?";
$stmt = $connection->prepare($query);
$stmt->bind_param("s", $key);
$stmt->execute();
if ($stmt->affected_rows) {
echo "Deleted ".$stmt->affected_rows." rows";
} else {
echo "No rows matched the criteria.";
}
$stmt->close();
}
- 1 回答
- 0 关注
- 168 浏览
添加回答
举报
0/150
提交
取消