php - 删除 PDO 中的多行

标签 php mysql pdo sql-delete

我是 PDO 的新手,我已经对我面临的问题进行了一些搜索,但我找不到任何答案。正如您在下面看到的,我有这个功能:

function deleteInfo($id){
    $pdo = connPDO();
    $deleteInfo = $pdo -> prepare("DELETE FROM game_locais_zumbis WHERE id_zumbi IN (:id)");
    $deleteInfo -> bindValue(":id", $id, PDO::PARAM_STR);
    $deleteInfo -> execute();
    $pdo = null;
}

之后,我有以下代码:

while($row = $listInfo -> fetch(PDO::FETCH_ASSOC)){
    $ids[] = $row['ids'];
}
$ids = implode(',', $ids);
deleteInfo($ids);

当我回应我的 $ids 时,我得到:

1,2,3,4,5

但是 DELETE 函数并没有删除我数据库中的所有这五行,而是只删除了第一行,例如“1”。当我在我的数据库中运行完全相同的 DELETE 函数时,将“:id”替换为“1,2,3,4,5”,它确实有效!有人知道我在这里犯了什么错误吗?我感谢任何帮助。

最佳答案

我会这样做:

$query = "DELETE FROM game_locais_zumbis WHERE id_zumbi in (".str_repeat("?,", count($ids) - 1)."?)";
$stmt = $conn->prepare($query);
$stmt->execute($ids);

关于php - 删除 PDO 中的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25354292/

相关文章:

php - 在 Zend Framework 中放置模型的最佳位置是哪里?

php - 使用 PHP 将所见即所得的内容打印为 HTML

php - 检测 Visual Composer

java - 将数据插入数据库表中,输入数据的值决定它将存储在哪个表中

php - DATE(列)过滤器不返回任何内容

php - 来自另一个 PDO 查询结果的 PDO 查询

php - mysql在while循环中更新仅更新最后的结果

php - 制作自动换行。 PHP 到 Excel

mysql - 所有数据未从 CSV 加载到 MYSQL

php - mysql查询日志中的^M字符,它是从哪里来的?