为了账号安全,请及时绑定邮箱和手机立即绑定

无法使用 php 删除数据库 mysql

无法使用 php 删除数据库 mysql

PHP
蝴蝶刀刀 2021-09-18 21:24:26
我尝试使用此代码从 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个赞

你这里有几个问题,

  1. or die(mysqli_error($connection))是查询字符串,而不是实际查询。此外,与其手动检查错误,不如配置为自动抛出错误。为此,将以下行添加到连接代码中:

    mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
  2. 你试图删除它两次?尽管永远不会执行第二个查询,但您只需定义查询字符串(并且永远不要运行它)。

  3. num_rows仅可用于选择语句。您想affected_rows检查查询是否确实删除了任何数据。

  4. 您没有使用准备好的语句。

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();

}


查看完整回答
反对 回复 2021-09-18
  • 1 回答
  • 0 关注
  • 168 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信