[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 メーリングリストの案内