[PHP-users 14878]Re: [PHP-users14665]PEARでクエリが実行されるときとされない時がある

Mashiki mashiki @ yanah.com
2003年 4月 24日 (木) 16:39:26 JST


 Mashikiです。
>いわきりです
>>#余談
>DB::connect()って、pg_pconnectを内部で読んでるんでしたっけか?
>だったら、トランザクションの途中で問題があった場合、明示的に
>ROLLBACKをかけるか、disconnectで、PostgreSQLとのコネクションを
>切断しないかぎり、以降のSQL全てが
>current transaction is aborted, queries ignored until 
>end of transaction block
>と、怒られるように思えます。

DB::connect()のpgsql用の実装ですが、
 function connect($dsninfo, $persistent = false)
 {
		:
		:
 $connect_function = $persistent ? 'pg_pconnect' : 'pg_connect';
 // catch error
 ob_start();
 $conn = $connect_function($connstr);
 $error = ob_get_contents();
 ob_end_clean();
 if ($conn == false) {
 return $this->raiseError(DB_ERROR_CONNECT_FAILED, null,
 null, null, strip_tags($error));
 }
 $this->connection = $conn;
 return DB_OK;
 }
のようになってますのでconnectの第二パラメータ$persistent次第です。
sorako yamamotoさんの場合、これをtrueで呼んでいるので、falseに変えるか、
いわきりさんの余談の部分のとおりエラー処理を正しく行うべきですね。
おそらくこれが原因みたい。


PHP-users メーリングリストの案内

AltStyle によって変換されたページ (->オリジナル) /