[PHP-users 35748] Re: PostgreSQL配列型カラムへのプリペアドステートメント実行
Kiyotaka sumii
quatrecentsept @ tsunukoraf.net
2012年 11月 7日 (水) 15:25:14 JST
こんにちは
この場合、execute時に$2に代入する値を、phpの配列ではなく、
postgresqlが理解できる配列の型にしてあげる必要があります。
具体的には array("abc","def") のところが、
{abc,def}
という文字列になります。
ex.
$pg_array = "{abc,def}";
pg_execute($dbconn, $stmtname, array(1,$pg_array));
On 2012/11/07, at 14:09, おさ <osa @ osa-p.net> wrote:
> こんにちは、おさです。
>
> PostgreSQLの配列型カラムへデータを投入したいのですが、
> エラーになってしまい困っています。
>
> id bigint
> data text[]
> というカラム定義のテーブルがあり
> insert into tbl (id,data)values($1,$2)
> というプリペアドステートメントを定義しました。
>
> そこで
> pg_execute($dbconn, $stmtname, array(1, array("abc","def")))
> を実行したのですが、PostgreSQL側で
> ERROR: 配列値は"["か次元情報から始まらなければなりません
> というエラーが出ます。
> pg_executeに直接配列は渡せないのでしょうか?
> なにか正しいやり方があるのが、自前でなんとしないといけないのでしょうか?
>
> 環境はPHP5.4.8、PostgreSQL9.2.1です。
>
> --
> +-----------------------------------------------------------------------+
> HANDLE:おさ
> EMAIL :osa @ osa-p.net twitter:osapon URL:http://www.osa-p.net/
> +-----------------------------------------------------------------------+
> _______________________________________________
> PHP-users mailing list PHP-users @ php.gr.jp
> http://ml.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://oldwww.php.gr.jp/php/novice.php3
PHP-users メーリングリストの案内