通过ajax你可以得到$_POST的数组。
这是我的代码。
<?php
include 'connect.php';
$deletethesestring = '';
foreach ($_POST as $v)
{
$deletethesestring .= $v.',';
}
$deletethesestring = rtrim($deletethesestring ,',');
echo $deletethesestring;
$deleteprizesqry = $pdo->prepare('DELETE FROM tbname where tbname_id IN(:deletethesestring);');
$deleteprizesqry -> bindParam(':deletethesestring', $deletethesestring);
$deleteprizesqry->execute();
?>
如果我的数组例如是 [9,7,3,4,8,5] 我的代码只删除了 9. 其余的仍然保留。我希望它删除 id 属于数组的每一行。我该怎么做?
最佳答案
请尝试以下代码:
<?php
include 'connect.php';
$deletethesestring = '';
foreach ($_POST as $v)
{
$deletethesestring .= $v.',';
}
$deleteIds = rtrim($deletethesestring ,',');
$deletethesestring = join(',', array_fill(0, count($_POST), '?'));
$delQry = "DELETE FROM tbname where tbname_id IN($deletethesestring)";
$deleteprizesqry = $pdo->prepare($delQry);
$deleteprizesqry->execute($_POST);
希望这对您有帮助!
关于php - DELETE FROM table WHERE IN() 准备语句仅删除数组的第一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34669998/