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