Re: [請益] 有關PDO例外捕獲的問題

看板PHP作者 (任性)時間14年前 (2011/04/13 16:49), 編輯推噓3(305)
留言8則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《athelok (連米)》之銘言: : 我的code是這樣 : $db = new PDO($dsn, 'user', 'pw'); : $std = $db -> prepare(一段錯誤的SQL); : try : { : $std -> execute() : } : catch(PDOException $e) : { : var_dump($e -> getTrace()); : } : 也就是說我拿一段錯誤的SQL去執行 : 但catch卻沒有捕獲到任何錯誤 : 想請問一下有人知道PDOException是否還沒辦法捕獲到execute()的errorInfo()? 你要 set setAttribute $dsn = "mysql:host=$db_host;dbname=$db_name"; $dbh = new PDO($dsn, $db_user, $db_password); $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION ); 這樣你的 SQL 有問題就會 throw Exception PDO 預設在 ATTR_ERRMODE 是 ERRMODE_SILENT 或者是用 $sth->errorInfo() $dbh->errorInfo() 這兩個去拿錯誤訊息也可以。 -- The Internet: where men are men, women are men, and children are FBI agents. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 202.89.121.16

04/14 11:23, , 1F
版上太少PDO相關討論了!不知道除了官網
04/14 11:23, 1F

04/14 11:24, , 2F
哪邊還有相關PDO討論或是教學?
04/14 11:24, 2F

04/14 11:24, , 3F
補推這篇
04/14 11:24, 3F

04/14 14:48, , 4F
官網範例的確少了點,有問題可以提出來互相討論 :D
04/14 14:48, 4F

04/14 23:21, , 5F
太厲害了 感謝感謝!
04/14 23:21, 5F

04/14 23:21, , 6F
不用errorInfo是因為還要判斷很麻煩
04/14 23:21, 6F

04/14 23:22, , 7F
如果可以throw就直接寫在class裡面我就不用每次寫if(!xxx)
04/14 23:22, 7F

04/14 23:30, , 8F
感謝roga大大 您的文章總是讓我受益良多
04/14 23:30, 8F
文章代碼(AID): #1DfMEBeJ (PHP)
討論串 (同標題文章)
文章代碼(AID): #1DfMEBeJ (PHP)