gpt4 book ai didi

使用 PDO 连接在 try-catch block 中处理 PHP 数据库错误

转载 作者:行者123 更新时间:2023-11-29 11:37:54 25 4
gpt4 key购买 nike

我正在进行一项练习,其中涉及使用 try-catch block 在数据库行不存在时引发异常。以下是 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>";
}
}

在我运行的类(class)之外:

$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,则它存在。

关于使用 PDO 连接在 try-catch block 中处理 PHP 数据库错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36298115/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com