私はPDOにかなり慣れていません。何かが存在しない、つまりテーブルのときにエラーをキャッチして表示するトライアンドキャッチがあります。
ただし、SQL 失敗コマンドのエラー メッセージ/原因を表示するにはどうすればよいですか。
以下の例では、「有効」という単語を小さな int 列に挿入しようとしましたが、空白の画面しか表示されず、自分でデバッグする必要がありました。SQL 失敗エラー メッセージを表示するにはどうすればよいですか?
$db = new PDO('mysql:host='.$dateBaseHost.';dbname='.$dateBaseName, $dateBaseUsername, $dateBasePassword);
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// set/get variables
$id = (isset($_GET['id']) === true) ? $_GET['id'] : die("ID not set") ; // ? : shorthand if else
$action = (isset($_GET['action']) === true) ? $_GET['action'] : die("Action not set") ; // ? : shorthand if else
// query
$query = $db->prepare(" UPDATE `telephoneCountries` SET `enabled`= :action WHERE `id` = :id ");
// bind parameters - avoids SQL injection
$query->bindValue(':id', $id);
$query->bindValue(':action', $action);
// try... if not catch exception
try {
// run the query
$query->execute();
}
catch (PDOException $e){
//sendErrorMail($e->getMessage(), $e->getFile(), $e->getLine());
echo $e->getMessage();
echo $e->getFile();
echo $e->getLine();
}