php - MySQL/PHP 批量删除使用数组 : Best method?

标签 php mysql arrays

我需要通过 PHP(使用 PDO)从 MySQL 表中进行批量删除。该表有一个名为“id”的字段,所有要删除的 id 都存储在一个数组中。可能有 5 行要从表中删除,也可能有 5000 多行。

我的直接想法是使用 foreach 并遍历数组,一次删除一个。然而,有些事情告诉我,如果数组中有很多元素,这可能不是一个很好的方法。

对执行此类删除的最佳方法有什么想法吗?

最佳答案

使用以下查询将 table_name 替换为表的名称。 $listofIdsToDelete是ids数组分解得到的逗号分隔字符串

$query = "DELETE FROM `table_name` WHERE id IN ($listofIdsToDelete)";

编辑:

如果你做好准备,你会获得更好的表现:

$pQuery = "DELETE FROM table_name WHERE id = ?" 

并在循环中绑定(bind)每个id项并执行。

感谢 UselessIntern 对下面提到的更正以及在答案中包含此评论的建议

关于php - MySQL/PHP 批量删除使用数组 : Best method?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24208134/

相关文章:

.net - C# 使用 WebClient.UploadFile(string, string) 上传到 Apache & PHP 网络服务器

php - MySQL无法从网络应用程序中删除

php - 使用 PHP 更改查询的日期

php - 如何计算数据库中单行内的点赞数和中立数?

javascript - Array.map + parseInt

PHP - 无法连接到 aws ec2 上的 mysql

javascript - 用ajax将记录添加到mysql数据库后重新加载查询,无需重新加载页面

mysql - 报告两年内逐月比较图表

c++ - 映射指针值的动态分配

ios - 原型(prototype)单元格从 JSON 获取不正确