[pgsql-jp: 27199] Re: pg_execが2度実行されてしまう現象
桝形 誠二
s.masugata @ digicom.dnp.co.jp
2002年 8月 29日 (木) 19:01:26 JST
こんにちわ、桝形です。
> > 他の方も書いていますが,何を持って「2度実行された」と判断したのでしょ
> > うか?
>
> PHPからは1度のpg_exec()でinsertを実行しているのですが、
> psqlを使って、select * from foo; として結果を見ると
>
> id | name
> -------------------
> 1 | test1
> 2 | test1
>
> のように、同じnameのデータでidだけは更新されたレコードが
> 2つ登録されてしまします。
下記で試してみました。
Pg.html:
<html>
<body>
<form action="Pg.php" method="POST">
<input type="text" name="name">
<input type="submit">
</body>
</html>
Pg.php:
<?
dl( "pgsql.so" );
$name = $_POST[name];
$con = pg_connect( "host=localhost port=5432 dbname=XXXX" );
$sql = "insert into foo(name) values('$name')";
$rtn = pg_query($con, $sql);
$sql = "select currval('foo_id_seq')";
$rtn = pg_exec($con, $sql);
$new_id = pg_result($rtn, 0, 0);
echo $new_id;
?>
で、やってみたのですが、再現できませんでした。
ゆっくりと単発アクセスを繰り返して、処理が終われば前の
画面に戻って表示されたIDを入力して〜という工程を200回
程度繰り返したのですが再現できず、疲れてやめてしまい
ました。。。これくらいじゃ足りないですか?(^^;
また、本当にバージョンを上げてから現象がでるようになった
のでしょうか?
PHPで処理したページを、ブラウザで更新すると同様の現象に
なるので、おそらくそんな感じな気もするのですが。。。
[環境]
OS : RedHatLinux6.2J
PHP : 4.2.2
PostgreSQL : 7.2.2
Apache : 1.3.26
7.2.2がリリースされていますが、このMLで話題になりません
よね。。。(気のせいか見てないだけ?)
あまり関係がないというより影響が少ないのでしょうか?
http://www.jp.postgresql.org/news.html
_______________________
桝形 誠二( Masugata Seiji )
E-Mail : s.masugata @ digicom.dnp.co.jp
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
pgsql-jp メーリングリストの案内