gpt4 book ai didi

php - 当表不存在时如何处理PDO fatal error ?

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

我想打印方便的错误消息(用户可以理解的消息)而不是 PDO 系统 fatal error 。

我有以下 PDO 语句,如果该表不存在我想打印错误消息表不存在。

$db = new PDO('mysql:host=localhost;dbname=cnf20;charset=utf8mb4', 'root', '', array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
function getData($db) {
$stmt = $db->query("SELECT * FROM tb_accessory_info1");
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}

try {
foreach(getData($db) as $row) {
echo $row['part_no'];
}
} catch(PDOException $ex) {
$db->rollBack();
echo $ex->getMessage();
}

目前我收到此错误消息

Fatal error: Uncaught PDOException: There is no active transaction
in......on line 15

取而代之的是,我想打印用户可以理解的错误消息,例如“请重试!”

请支持我!谢谢

最佳答案

正如 Paul 所说,不清楚为什么要查询一个不存在的表,但一种方法是在运行其他语句之前检查 MySQL 中该表是否存在:

SELECT *
FROM `information_schema`.`tables`
WHERE `table_schema` = 'database_name' AND `table_name` = 'table_name'
LIMIT 1;

这假设连接到数据库的用户具有对information_schema.tables的读取访问权限。将 'database_name''table_name' 替换为您的值。

关于php - 当表不存在时如何处理PDO fatal error ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45257714/

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