エラーが検出されなかったため、PDOを使用して問題が発生しました。PDOのトラブルシューティング:プリペアドステートメントの実行時にエラーが発生しない
コードはシンプルで、うまく動作しますが、私は混乱を避けるために、サンプルが含まれます:
$sql = 'INSERT INTO somedatetable (something)
VALUES (:something)
ON DUPLICATE KEY UPDATE something=:something';
$values = array(":something" => $something);
try {
$stmt = $dbh->prepare($sql);
$stmt->execute($values);
} catch (PDOException $e) {
echo "Error: " . $e->getMessage() . "<br />\n";
}
コードが新しいモジュールで作業する場合は、しかし、私が問題に遭遇したが正常に動作していますレコードが追加または変更されず、エラーがキャッチされませんでした。
$stmt
false
が返されましたが、私はその理由を、またどのようにエラーを見つけるのか分かりませんでした。
解決策は簡単でしたが、私はテーブルへの書き込み権限を持たない限られたMySQLユーザーを使用していました。これらのエラーは、mysqlを使用しているときにはすぐに表示されますが、PDOを使用して取得する方法はわかりません。
これらの種類のデータベースエラーを表示または捕捉するにはどうすればよいですか?例外のよう
おかげで、私が知っている必要があります正確に何を私に伝えています。しかしもう1つの質問ですが、なぜエラーがキャッチされないのですか? – jeroen
あなたはそれが偽を返すと言いました、それは捕まえられたということを意味します;-) –
Ummmmmmmm、メッセージを表示しないとcatchステートメントを持つ点は何ですか?私はそれの全体のポイントは、これらの(成功)他の組み合わせを取り除くことだと思った... – jeroen