PDOException
でdbname
のパラメータの間違いが発生した場合、そのエラーを拾いたいと考えております。
以下のコードの様に例えば、仮にdbname="main_db"
であるところ、意図的に存在しないdbname="main_ab"
と間違えた場合、return "error1";
を出力して、処理を進めずに分岐したいと考えております。
php
1 $dsn = 'mysql:dbname=main_db;host=localhost:8889'; 2 $user = 'root'; 3 $pass = 'root'; 4 5 try{ 6 $pdo=new PDO($dsn,$user,$pass, 7 array( 8 PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, 9 PDO::ATTR_EMULATE_PREPARES => false, 10 ) 11 ); 12 }catch(PDOException $e){ 13 return "error1"; 14 exit(); 15 } 16var_dump($pdo)// 17if ($pdo === "error1"){ 18 echo "エラーが発生しています"; 19 return ; 20} 21 try{ 22 $stmt = $pdo -> query('SELECT * FROM table_sample'); 23 $items = $stmt->fetchAll(PDO::FETCH_ASSOC); 24 25 }catch(PDOException $e){ 26 return "error2"; 27 exit(); 28 }
var_dump($pdo)//
においてobject(PDO)#1 (0) { }となりreturn "error1";が出力されないのですが、どの様にしたら識別、取得できるのでしょうか?もちろんオブジェクトが空であればという分岐は書けると思うのですが、それではtry-catchしている意味もないと思うので、投稿させていただきました。お願いいたします。
回答2件
あなたの回答
tips
プレビュー