我想打印方便的错误消息(用户可理解的消息)而不是PDO系统fatel错误。
我有以下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
而不是这个我想打印用户可以理解的错误消息,如'请再试一次!'
请支持我!感谢
答案 0 :(得分:0)
正如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'
替换为您的值。