$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删除数组中的多行。user tick复选框并以数组形式发送。
我将它内爆成字符串并使用IN (),我不知道哪里出了问题,它只删除了一行。
post_id user_id
2 1
3 1
4 2因此,如果user: 1发送$favour_delete=array(2,3);,则应删除第一行和第二行
发布于 2013-07-15 23:25:43
不幸的是,到目前为止,有一种方法可以在查询中参数化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); https://stackoverflow.com/questions/17657760
复制相似问题