给定一数组 $galleries = array(1,2,5),我想要一个SQL查询,它在WHERE子句中使用数组的值,如:
SELECT *
FROM galleries
WHERE id = /* values of array $galleries... eg. (1 || 2 || 5) */
如何生成此查询字符串以用于MySQL?
最简单的方法:implode
数组元素的值是整型:
$query = \"SELECT * FROM `$table` WHERE `$column` IN(\".implode(\',\',$array).\")\";
数组元素的值是字符串:
$query = \"SELECT * FROM `$table` WHERE `$column` IN(\'\".implode(\"\',\'\",$array).\"\')\";
对于具有转义功能的MySQLi:
$ids = array_map(function($a) use($mysqli) {
return is_string($a) ? \"\'\".$mysqli->real_escape_string($a).\"\'\" : $a;
}, $ids);
$ids = join(\',\', $ids);
$result = $mysqli->query(\"SELECT * FROM galleries WHERE id IN ($ids)\");
对于准备好声明的PDO:
$qmarks = implode(\',\', array_fill(0, count($ids), \'?\'));
$sth = $dbh->prepare(\"SELECT * FROM galleries WHERE id IN ($qmarks)\");
$sth->execute($ids); 继续阅读与本文标签相同的文章
-
国产代工崛起新巨头!富士康出走容易回归难,郭台铭后悔莫及
2026-05-15栏目: 教程
-
一部被雪藏3年的高智商犯罪片,豆瓣评分8.5,猜到结局算我输!
2026-05-15栏目: 教程
-
景区厕纸要人脸识别?只因大妈大爷狂薅不停!
2026-05-15栏目: 教程
-
华为海思对外开卖首款4G通信芯片
2026-05-15栏目: 教程
-
火龙果财经:有关区块链的议题 你了解多少(二)
2026-05-15栏目: 教程
