2012-04-13 37 views
2

如何識別讀取錯誤或從執行錯誤中清空結果與php PDO mysql驅動程序?確保PDO獲取方法結果爲「假」是錯誤或空結果

$sql = ' SELECT * '; 
    $sql .= ' FROM test '; 
    $sql .= ' WHERE id = 432 '; 

    $statement = $this->_db->prepare($sql); 
    $status = $statement->execute(); 

    var_dump($status); 

    $result = $statement->fetch(\PDO::FETCH_ASSOC); 

    var_dump($result); 

    output: 
    bool(true) 
    bool(false) 

因此,我用pdo編寫語句,然後執行sql,並且狀態爲true,因爲沒有錯誤。然後我獲取結果,並在這種特定情況下id = 432的行不存在。所以fetch方法返回false。我的問題是,當出現錯誤時,fetch方法也會返回false。

如何確保獲取「假」結果是錯誤還是空結果?

回答

0

如果出現錯誤,那麼PDO會拋出一個您可以捕獲的異常。用try catch包裝你的代碼,並且應該捕獲任何異常。

try { 
    $rs = $db->prepare('SELECT * FROM foo'); 
    $rs->execute(); 
    $foo = $rs->fetchAll(); 
} catch (Exception $e) { 
    echo 'Error: '.$e->getMessage(); 
} 
+4

要求相應地設置PDO :: ATTR_ERRMODE:http://us.php.net/manual/en/pdo.setattribute.php – DCoder 2012-04-13 19:13:32