W dniu 10 stycznia 2012 16:17 użytkownik Andy Colson <andy@xxxxxxxxxxxxxxx> napisał: >> 2012/1/10 Andy Colson<andy@xxxxxxxxxxxxxxx>: >>> I am writing PHP where it prepares a statement like: >>> $sql = 'select * from aTable where id = any($1)'; >>> >>> then in php I create a string: >>> $args = "{1,2,3}"; >>> >>> And run it: >>> >>> $q = pg_query_params($db, $sql, $args); > On 1/10/2012 9:11 AM, Filip Rembiałkowski wrote: >> maybe try to use ARRAY constructor instead? >> >> http://www.postgresql.org/docs/9.0/static/sql-expressions.html#SQL-SYNTAX-ARRAY-CONSTRUCTORS > > As I mentioned, I cannot get it to work: > > clayia=# prepare x as select 'bob' = any($1); > PREPARE > Time: 0.665 ms > clayia=# execute x( 'array[''joe'', ''bob'']' ); > ERROR: array value must start with "{" or dimension information > LINE 1: execute x( 'array[''joe'', ''bob'']' ); > no, I meant array constructor with reserved word ARRAY: prepare x as select 'bob' = any( ARRAY[$2,$3] ); execute x( 'joe', 'bob' ); and in PHP: <?php $names = array( "joe", "bob" ); $placeholders = implode( ",", array_map( function($x){return "?"}, $names ) ); #I love Perl $sql = "select 'bob' = any( ARRAY[$placeholders] )"; $stmt = $dbh->prepare($sql); $stmt->execute($names); ?> -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general