簡體   English   中英

使用PDO連接在try-catch塊中處理PHP數據庫錯誤

[英]PHP database error handling in try-catch block using PDO connection

我正在進行一項練習,其中涉及使用try-catch塊在數據庫行不存在時引發異常。 這是read()函數的示例:

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中放置了錯誤的語句,還是完全是其他內容?

這是正常的行為,“ try catch”語句捕獲錯誤,異常……給定id的任何記錄都不是錯誤。 如果要檢查是否有記錄,可以使用

count($results);

如果此計數大於0,則存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM