[pgsql-jp: 32771] Re: PHPで配列変数の挿入について。

yoshiyuki fukutome tome @ nekomyu.org
2004年 4月 13日 (火) 21:17:15 JST


ふくとめです。

> 早速ですが、PHPファイル内に
> 
> $ar = array("A","B");
> //var_dump($ar);
> //array(2) { [0]=> string(2) "A" [1]=> string(2) "B" }
> があるとしまして、これを
> 
> pg_query (insert into table values ($ar));
> 
> のように使うとsyntax errorが起こります。

PHP の pg_query 関数に渡すべき引数は

pg_query(resource connection, string query);
http://jp2.php.net/manual/ja/function.pg-query.php

となっており、SQL 文は文字列でなくてはならない。

> \"$ar\" や '$ar' や $ar[] でもだめでした。
> array['A','B'] ではうまくいくのですが…。

> なんとか $ar のまま格納することは出来ないのでしょうか?
> (内部に収まっている数が2個とは限りませんので…。)

配列のままテーブルに格納するのは思いつきませんでした。
しかしながら、変数を文字列に表現できるように変換する関数が
ありますので、これを利用してみてはいかがでしょうか。
変数のシリアル化、あるいは直列化と呼ぶようです。

詳細は、PHP の serialize, unserialize 関数の説明
http://jp2.php.net/manual/ja/function.serialize.php
http://jp2.php.net/manual/ja/function.unserialize.php

に SQL データベースとのやりとりを例にしたものがりますので
そちらを参照してください。

では、
-- 
fukutome yoshiyuki
tome @ nekomyu.org



pgsql-jp メーリングリストの案内