php - PDO 使用 OR 数组选择查询

标签 php mysql pdo

我有一个对象数组:

$arr = array('10', '12');

我正在使用 PDO 运行此查询:

$stmt = $pdo->prepare("SELECT * from table WHERE user_sequence = :user_sequence");

我希望能够让查询说WHERE user_sequence = :item1 OR user_sequence = :item2

item1, item2 等是数组中的对象

我如何使用 PDO 执行此操作?

通常在 MySQL 中,我会这样做:

$sql="SELECT * from table WHERE ";
foreach($array as $a) {
    $sql.="col = '".$a."' OR ";
}

但我不确定如何在 PDO 查询中复制这个理论

最佳答案

你可以这样做:

$values = [ 'first value', 'second value', 'third value' ];

$conds = array_map(function() {
    return "user_sequence = ?";
}, $values);

$sql = "SELECT * from table WHERE " . implode(" OR ", $conds);

$stmt = $pdo->prepare($sql);
$stmt->execute($values);

关于php - PDO 使用 OR 数组选择查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33660595/

相关文章:

php - AJAX 表单未将值插入 SQL DB

PHP 将图像插入数据库

mysql - 如何一次将批量数据插入数据库?

php - 第二个查询仅显示初始查询的某些行的数据

phpmyadmin 和 mysql pdo lastInsertId()

PHP - 在 INSERT INTO MySQL 语句中使用变量作为列名的一部分

PHP注册/登录错误

bash - shell_exec 在 php web 应用程序中不工作

php - 在 Symfony2 之外使用 assetic(使用 Yii)

mysql - 并发 mySql 数据库查询