php - 无法用php删除数据库mysql

标签 php mysql mysqli

<分区>

我试图用这段代码从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. 您的 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();
}

关于php - 无法用php删除数据库mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56849102/

相关文章:

PHP + mySQLi 最后插入的 id

php - 为什么会出现这种情况? mysqli_query() : Empty query in/home/evansbwg/public_html/Old Things/Website/insert. php 第 52 行

mysql - 我可以在查询中避免使用 sql_mode 吗?

mysql - 大于值 1 的 SQL 查询将不起作用?

mysql - 在 MySQL 中无限运行的 INSERT

php - PDO MySQL 如何处理预处理语句中的参数?

php - jQuery JSON 没有正确地将数据传递给 Ci

php - 在不使用引号的情况下在查询中传递字符串 ''

php - 识别 MySQL while 循环中的第 3 行

javascript - 在 WordPress 中的其他页面内容之前加载 div