MySQL在只删除单行时,应该从变量-PHP中删除多行

MySQL在只删除单行时,应该从变量-PHP中删除多行,php,mysql,mysqli,Php,Mysql,Mysqli,我试图根据表单中复选框的选择删除数据库中的多条记录。但是,如果选中多个复选框,则由于某种原因,当前sql只删除第一个id,而不删除其余id $del_ids = implode(',', array_keys($_POST['check_list'])); $query = "DELETE FROM enhancements WHERE id IN('$del_ids')"; $result = mysqli_query($connection, $query); 例如,我的数组如下所示:

我试图根据表单中复选框的选择删除数据库中的多条记录。但是,如果选中多个复选框,则由于某种原因,当前sql只删除第一个id,而不删除其余id

$del_ids = implode(',', array_keys($_POST['check_list'])); 
$query = "DELETE FROM enhancements WHERE id IN('$del_ids')";
$result = mysqli_query($connection, $query);
例如,我的数组如下所示:

Array
(
    [check_list] => Array
        (
            [4] => on
            [6] => on
        )
)
4,6
运行后:

$del_ids = implode(',', array_keys($_POST['check_list']));
我的
$del_id
字符串如下所示:

Array
(
    [check_list] => Array
        (
            [4] => on
            [6] => on
        )
)
4,6

但由于某些原因,只有id为4的记录才会删除,id为6的记录不会删除,它们都应该删除。有什么建议吗?

可以运行muliple delete语句,也可以在语句中附加or子句

需要枚举要删除的ID所在的数组,您可以执行以下操作:

        foreach($_POST['check_list']as $key) {
    $query = "DELETE FROM enhancements WHERE id IN('".$key."')";
$result = mysqli_query($connection, $query);
    }
您必须使用以下选项:

$del_id=内爆(“,”,数组键($\u POST['check_list'])

像字符串一样发送键,请尝试替换为

$query = "DELETE FROM enhancements WHERE id IN(".$del_ids.")";

它应该可以工作

你确定delu id包含多个值吗?你似乎引用了IN值,导致类似于
IN('4,6')
的更改
WHERE id IN(“$delu id.”)
WHERE id IN(“$delu id.”)
以及使用
作为$key
而不是
$key=>value
,您将获得那些
on
值,而不是实际的键,这将产生
IN('on')