php - PDO 和 MySQL IN/NOT IN 查询的正确格式

标签 php mysql pdo

出于显而易见的原因,这是要搜索的谋杀...

我如何在 PDO 中执行此操作:

SELECT thing FROM things WHERE thing_uid IN ( ... )

我的特定用例是通过分解从具有几十个复选框的表单中获取的数组构建的字符串。在标准 MySQL 中,这非常容易...

$thingString = implode("', '", $thingArray);
$q = "SELECT thing FROM things WHERE thing_uid IN ('$thingString')";

但我希望它能从 PDO 的反注入(inject)保护中受益……绑定(bind)参数等等。那我该怎么做呢?

最佳答案

创建一个包含与您的值一样多的 ? 的数组,并将其放入查询中。

$placeholders = array_fill(0, count($thingArray), '?');
$sql = "SELECT thing FROM things WHERE thing_uid IN (" . implode(',', $placeholders) . ")";

关于php - PDO 和 MySQL IN/NOT IN 查询的正确格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7062576/

相关文章:

php - 默认情况下使用 paypal 自适应付款显示付款详细信息

mySQL:根据另一列的条目对一列求和

php - 无法让 PDO 返回任何结果

php - PDO 和 SQL 创建临时表的一般错误

php - 在 Woocommerce 3 中使用 CRUD 方法以编程方式创建产品

php - 从命令行运行 PHP 脚本

php - mysql 查询 - 有限制的博客文章和评论

php - 如何打印(导出)到 MS-Word 搜索结果 (PHP)

mysql。无法创建表 errno 150

PHP 使用 PDO 语句清理输入