无法使用 php 删除数据库 mysql

我尝试使用此代码从 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。请帮助我的代码出了什么问题


蝴蝶刀刀
浏览 169回答 1
1回答

侃侃无极

你这里有几个问题,您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();}
打开App,查看更多内容
随时随地看视频慕课网APP