MySQL在只删除单行时,应该从变量-PHP中删除多行
我试图根据表单中复选框的选择删除数据库中的多条记录。但是,如果选中多个复选框,则由于某种原因,当前sql只删除第一个id,而不删除其余idMySQL在只删除单行时,应该从变量-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); 例如,我的数组如下所示:
$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')