1
$favour_delete=$_GET['favour_delete'];
$favour_delete=implode(",",$favour_delete);

$delete=$db->prepare("DELETE FROM favour WHERE post_id IN (:favour_delete) && user_id=:user_id");
$delete->bindValue(':favour_delete', $favour_delete, PDO::PARAM_STR);
$delete->bindValue(':user_id', $user_id, PDO::PARAM_STR);   

我有一个mysql删除数组中的多行。用户勾选复选框并将其发送到数组中。

我将它内爆成字符串并使用IN(),我不知道哪里出错了,它只删除了一行。

post_id  user_id
2        1
3        1
4        2

因此,如果 user: 1 send$favour_delete=array(2,3);它应该删除第一行和第二行

4

1 回答 1

0

不幸的是,到目前为止,现在有一种方法可以在查询中参数化 in 子句,您最好的选择如下。

<?php
$favour_delete=$_GET['favour_delete'];
$favour_delete=array_map('intval',$favour_delete);

$delete=$db->prepare("DELETE FROM favour WHERE post_id IN (".implode(",",$favor_delete).") && user_id=:user_id");
$delete->bindValue(':user_id', $user_id, PDO::PARAM_STR); 
于 2013-07-15T15:25:42.607 回答