2012-05-31 1 views
2

매개 변수화 된 쿼리에서 문자열 배열을 전달해야합니다. 다음과 같은 시도했지만 전혀 작동하지 않습니다.PostgreSQL에서 PHP의 IN/= ANY 절에 대한 배열 매개 변수화

$params = array(array('bob','andrew','larry')); 
pg_query_params($conn, 'SELECT * FROM table1 WHERE field = ANY($1)', $params) 

나는 경우에도 문자열로 배열을 변환 한 후 데이터베이스 측의 배열로 입력을 변환 string_to_array를 사용하지만, 그 문자열 입력이 사용자로부터만큼이 심하게 끝낼 수있는 솔루션을 본 적이 쉼표가 아닌 구분 기호를 사용했습니다. 가능하다면이 대신 더 깨끗한 해결책을 사용하고 싶습니다.

데이터를 문자열로 변환하지 않고이 쿼리를 매개 변수화하고 배열을 전달하는 방법이 있습니까? 내가

+0

가능한 복제본 [PHP PDO : 배열을 IN() 조건에 바인딩 할 수 있습니까?] (http://stackoverflow.com/questions/920353/php-pdo-can-i-bind-an-array- 투 - 인 - 인 - 컨디션) – goat

답변

1

pgsql.so PostgreSQL의 8.3을 사용하고 있습니다 그런데

,이 기능이없는 libpq 연결되어 있습니다.

내부적으로 배열을 문자열로 직렬화해야합니다.

libpqtypes에는이 기능이 내장되어 있지만 이제는이 기능을 사용하는 PHP 라이브러리에 대해 알고 있습니다.