環境
PHP7.3 Postgres9.3
質問
PHP プログラムで Postgres を操作しています。
クエリの発行に pg_query_params() を使っているのですが、
この関数で、要素数が可変の where in はどのように書けばよいかがわかりません。
ご存じの方、ご教授いただけないでしょうか?
例えば、次の SQL を実行する際、
select * from Users where id in (12345, 23456, 34567) #id は int。
PHP で次のように記述しますが、
pg_query_params( $con, 'select * from Users where id in ($1, $2, $3)', [12345, 23456, 34567] );
where in の要素数が都度異なる場合、SQL 文字列内の ($1, $2, $3) の部分をどのように記述すればよいか、ということです。
もちろん、要素数の分だけ <$インデックス, > をつなげた文字列を編集すればできるとは思いますが、
そうせずに記述する方法が無いだろうか、と考えています。
試したこと
複数の要素をまとめた文字列をパラメータにしてみましたが、文字列として扱われてしまうため、エラーになってしまいました。
pg_query_params( $con, 'select * from Users where id in ($1)', ['12345, 23456, 34567'] );
以上、よろしくお願いいたします。

回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/01/09 06:56
2020/01/09 07:03 編集
2020/01/09 07:42
2020/01/09 08:07
2020/01/09 08:26