我能否在PDO查询中将一个数组绑定到IN()条件中?
我能否在PDO查询中将一个数组绑定到IN()条件中?
我很好奇能否使用PDO将值数组绑定到占位符。使用情况是尝试传递一个值数组以用于 IN()
条件。
我希望能够像这样做:
并且让PDO绑定和引用数组中的所有值。
目前我在做:
这确实能够做到,但我想知道是否有一种内置的解决方案我忘记了?
admin 更改状态以发布 2023年5月21日
你需要构建查询字符串。
prepare( 'SELECT * FROM table WHERE id IN(' . $inQuery . ')' ); // bindvalue is 1-indexed, so $k+1 foreach ($ids as $k => $id) $stmt->bindValue(($k+1), $id); $stmt->execute(); ?>
chris(注释)和somebodyisintrouble建议foreach循环可能是多余的......
(...) // bindvalue is 1-indexed, so $k+1 foreach ($ids as $k => $id) $stmt->bindValue(($k+1), $id); $stmt->execute();
... 可以将foreach
循环和$stmt->execute
替换成......
execute($ids);