Re: string = any()
От | Filip Rembiałkowski |
---|---|
Тема | Re: string = any() |
Дата | |
Msg-id | CAP_rwwmA153GNysoot7VX1dR-5PWcf6BKP=beD1A22VeP2q5Bw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: string = any() (Andy Colson <andy@squeakycode.net>) |
Ответы |
Re: string = any()
|
Список | pgsql-general |
W dniu 10 stycznia 2012 16:17 użytkownik Andy Colson <andy@squeakycode.net> napisał: >> 2012/1/10 Andy Colson<andy@squeakycode.net>: >>> 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); ?>
В списке pgsql-general по дате отправления: