无法使用PHP删除数据库MySQL

Q W*_*nly 1 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 {

}
Run Code Online (Sandbox Code Playgroud)

但它不想删除我的数据库。但是SQL已经正确了,我也得到了ID,因为我试图将其var_dump。请帮助我的代码出了什么问题

Qir*_*rel 5

您这里有几个问题,

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

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

  3. num_rows仅在选择语句上可用。您要affected_rows检查查询是否实际上删除了任何数据。
  4. 您没有使用准备好的语句。
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
Run Code Online (Sandbox Code Playgroud)