カテゴリー:
Fatal error
閲覧数:1038 配信日:2010-10-31 00:00
遭遇例
存在する間違ったデータベース名を記述
・意図したデータベースと違うデータベースを記述してしまうと、データベースへの接続には成功するが、意図したテーブル等が見つからないため、上記エラーが発生
エラー補足
・下記記述では、上記エラーを捕捉出来ない
if (PEAR::isError($mdb2)) {
exit('データベースへの接続に失敗しました');
}
補足できない理由
・データベース接続エラーではなく、接続自体は出来ているため
・単に違うデータベースへ接続した結果、そこに目的のテーブルがなかったために起こるエラーのため
対応例
案1.var_dump();
・準備したステートメントに対して、var_dump
$sth=$mdb2->prepare($sql,$type,MDB2_PREPARE_MANIP);//変更の伴うSQLの場合にMDB2_PREPARE_MANIPを追記
echo "<pre>";
var_dump($sth);
echo "</pre>";
・MDB2 Error: no such table みたいなメッセージが、確認できる
object(MDB2_Error)#4 (8) {
["error_message_prefix]=>
string(0) ""
["mode]=>
int(1)
["level]=>
int(1024)
["code]=>
int(-18)
["message]=>
string(25) "MDB2 Error: no such table"echo
案2.getDebugInfo();
if (PEAR::isError($sth)){
echo $sth->getDebugInfo();
exit();
}