0
我正在研究一個涉及如果數據庫行不存在時使用try-catch塊來引發異常的練習。這裏有一個read()
函數的例子:使用PDO連接的try-catch塊中的PHP數據庫錯誤處理
class Manager {
private $desc;
private $id;
private $newDesc;
public function read($id) {
$db = new PDO('mysql:host=localhost; dbname=database', 'root', '');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
$sql = "SELECT * FROM table where `id` = :id_val";
$query = $db->prepare($sql);
$query->bindParam(":id_val", $id);
$query->execute();
$results = $query->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $e) {
echo "Could not return specified row! <br />";
echo $e->getMessage();
}
echo "<pre>";
print_r($results);
echo "</pre>";
}
}
類外我運行:
$manager = new Manager();
$manager->read(44); // this is an id that IS NOT an existing record
我的瀏覽器顯示Array()
我是把錯誤的語句轉換成在try-catch,或者是別的東西共?
具有空結果集不會被捕獲,只需單獨處理 – Ghost
「異常如果數據庫行不存在」 - 您將不得不拋出自己的異常,因爲它默認情況下不會拋出一個異常。 – Mike