[PHP-users 633] Re: PHP 経由の SQL INSERT エラーについて
Tatsuo Ishii
php-users@php.gr.jp
Sun, 08 Jul 2001 23:27:25 +0900
石井です.
> serial(sequence)とuniqueのデータ型を持つテーブルを作成し、
> PHP経由でinsertを行いますと、PHPエラーが出ます。
>
> 以下のテーブルを作成し、
> CREATE TABLE tb_testA(
> test_id SERIAL,
> test_text TEXT UNIQUE NOT NULL
> );
> WWW(PHP3)経由で以下のようなスクリプトを実行しました。
> <?
> $conn = pg_connect("","","test");
> $rs = pg_exec($conn, "INSERT INTO tb_testA(test_text) VALUES('t1')");
> print $rs;
> ?>
>
> その結果、
> Warning: PostgresSQL query failed: ERROR: Cannot insert a
> duplicate key into unique index tb_testA_test_pkey in
> test.php3 on line 3
> というエラーが出ました。
テーブル定義とエラーメッセージが合っていないようですが?
"tb_testA_test_pkey" とあるので,tb_testA には主キーがあるはずです.
> テーブルを確認しましたところ、データは収められていました。
> test=# SELECT * FROM tb_testA;
> test_id | test_text
> ---------+-----------
> 1 | t1
> (1 rows)
>
> コマンドラインからINSERTを行いますと、エラーは出ません。
以上から(投稿されたメールの情報が誤りでない限り),「PHPとpsqlで実際に
は違うDBをアクセスしている」に1票.
PostgreSQLの設定で,デバッグ出力をたくさん出させ,実際にどこのDBに接続
しているのか確認した方がよいのでは?
--
Tatsuo Ishii