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();
?>
확실히 어떤 일을 할 수 있지만 내가 놓친 솔루션이 있는지 궁금하십니까?