2011-07-13 30 views
0

我有一個腳本,我正在通過用PDO準備的語句和查詢替換內聯mysql查詢來進行更新。當查詢正確或返回結果時,它工作正常。但是,當查詢語句中有錯誤時,try/catch將無法正常工作。例如,我用這個測試代碼:Try/Catch不能與此PDO查詢一起工作

$query = $this->dbh->prepare('SELEC menu_item, hyperlink, admin FROM top_menu;'); 
    try 
    { 
      $query->execute(); 
     $row = $query->fetch(PDO::FETCH_ASSOC)); 
        die("success"); 

    } 

    catch(Exception $e) 
    { 
     die("fail");   
    } 

查詢是錯誤的(「SELEC」,而不是「選擇」),因此該腳本的流程應該進入異常/錯誤括號,但它沒有按「T;我一直在獲得「成功」。我試過catch(PDOException $ e)而不是catch(Exception $ e),結果完全相同。

我在做什麼錯,我該如何解決這個問題?謝謝。

回答

1

類似的問題已經回答了here,PDO不會,除非你告訴它拋出異常。您是否運行了:

$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

上的PDO對象。