Php 使用复选框删除多行

Php 使用复选框删除多行,php,mysql,Php,Mysql,我正在尝试使用php选择和删除表中的多行。每当我选择checkmultiplerows进行删除时,我都会收到这个错误,因为您的SQL语法中有一个错误;检查与MySQL服务器版本对应的手册,以了解第1行“ID5”附近使用的正确语法。当我选中复选框时,我可以单独删除单行。以下是我的代码片段: <?php mysql_connect("localhost", "root", "") or die(mysql_error()); mysql_select_db("mydatabase") or

我正在尝试使用php选择和删除表中的多行。每当我选择checkmultiplerows进行删除时,我都会收到这个错误,因为您的SQL语法中有一个错误;检查与MySQL服务器版本对应的手册,以了解第1行“ID5”附近使用的正确语法。当我选中复选框时,我可以单独删除单行。以下是我的代码片段:

<?php

mysql_connect("localhost", "root", "") or die(mysql_error());

mysql_select_db("mydatabase") or die(mysql_error());

if (isset($_GET['delete'])){

$multiple = $_GET['multiple'];
$i = 0;

$sql = "DELETE FROM product ";

foreach ($multiple as $item_id) { $i ++;
    if ($i == 1){
        $sql .= " WHERE id = " . mysql_real_escape_string($item_id) . "";
    } else{
        $sql .= "OR id ". mysql_real_escape_string($item_id) . "";
    }
}
   mysql_query($sql) or die(mysql_error());
header("location: " . $_SERVER['PHP_SELF']);
exit();
}

?>

快速但不安全的解决方案:

 $sql = 'DELETE FROM product WHERE id IN ('.implode(',',$multiple).' )';

 mysql_query($sql) or die(mysql_error());

这是一个语法错误或id。缺少=.$sql.=或id。mysql\u real\u escape\u string$item\u id;失败有两个原因。缺少的等号和OR,我不知道为什么在和if/else中使用它。您的查询读取为$sql=DELETE FROM product或id。mysql\u real\u escape\u string$item\u id;在其他地方。因此,您的if$i==1{让您失望了。感谢您提供的快速解决方案。这在我的本地计算机上非常有效,但当我推送到服务器时,它告诉我没有这样的文件或目录。您以前是否会遇到此问题。我不知道您在说什么。我猜:uou可以尝试删除此部件headerlocation:。$\u server['PHP_SELF'];退出;退出脚本