PDOを使用して値の配列をプレースホルダーにバインドできるかどうか知りたいです。ここでの使用例は、IN()
条件で使用する値の配列を渡そうとしています。
私はこのようなことができるようになりたいです:
<?php
$ids=array(1,2,3,7,8,9);
$db = new PDO(...);
$stmt = $db->prepare(
'SELECT *
FROM table
WHERE id IN(:an_array)'
);
$stmt->bindParam('an_array',$ids);
$stmt->execute();
?>
そして、PDOにバインドして、配列内のすべての値を引用します。
現在私はやっています:
<?php
$ids = array(1,2,3,7,8,9);
$db = new PDO(...);
foreach($ids as &$val)
$val=$db->quote($val); //iterate through array and quote
$in = implode(',',$ids); //create comma separated list
$stmt = $db->prepare(
'SELECT *
FROM table
WHERE id IN('.$in.')'
);
$stmt->execute();
?>
確かに仕事はどれですか、私が欠けている組み込みのソリューションがあるかどうか疑問に思っていますか?