php - DELETE FROM table WHERE IN() 准备语句仅删除数组的第一个值

标签 php mysql arrays

通过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/

相关文章:

ios - 在 Swift 中跳过空数组?

php - twilio php 顺序拨号

mysql - 使用随机排序更新 MySQL 表

c - 每个链接列表都有较小的数组,这在 C 中有意义吗?

java - 由于 MySQLSyntaxErrorException : Unknown database 'dbname' error,无法通过 hibernate 连接到 MySQL 数据库

php - 如何使用 symfony 更新 mysql 列

Python - 创建 JSON 数组?并传递给 ajax

php - Symfony 2.3.5 从文件创建数据库模式失败

php - ASP.NET/VB.NET - ASP.NET 中 PHP 的 $_REQUEST 相当于什么?

javascript - 拉维尔 4 : How would you integrate user definable templates?