[PHP-users 17148]PEARexecuteでエラーが発生した場合のSQLの取得方法

Satoshi Higuchi satoshi @ mmp.jp
2003年 8月 5日 (火) 12:23:27 JST


樋口と申します。

MySQLをPEARクラスから使用しています。
prepareステートメントとexecuteを組み合わせてMySQLからDBの内容を取得しようと
した場合でエラーが発生した場合、どのようにしてエラーの判別をしたら良いでしょ
うか?

単純化した場合を示します。
$selsh1Sql = "SELECT * FROM FM_SHOHIN WHERE sh_shocd=?";
$selsh1Sth = $db->prepare($selsh1Sql);
$result = $db->execute($selsh1Sth, $shocd);

if(DB::isError($result)) {
	print mysql_error();
	exit($result->getMessage());
}

この場合エラーが発生すると、DB::isError がTRUEになります。
エラーの内容を知りたいので、executeで組み立てられ、発行されたSQL文を取得し
たいとします。その場合どのようにすれば、そのSQL文を取得することができるの
でしょうか?

DB::Resultクラスの説明を見たのですが、最後に実行されたSQL文を取得するような
関数は見つけることができませんでした。

prepareとexecuteを使わないで、文字列としてSQL文を作りqueryを実行する場合は
どのようなSQL文を実行しているか確認することができるので、それと同じことをす
る方法が判らなくて質問しました。

どなたかご存知の方、教えていただけると助かります。
-- 
Satoshi Higuchi




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