如何从 PHP PDO 接收 MYSQL 警告(例如 #1264 Out of Range)

How to receive MYSQL warnings (E.g. #1264 Out of Range) from PHP PDO

当我使用 PHP PDO 时,我注意到我可以将 ERROR MODE 更改为 Exceptions。

但是如果我还需要知道 MYSQL 警告怎么办。

示例:

update <table> SET number = 99999999999
numberint(11)

时,

应该导致 MYSQL 抛出以下警告

Warning: #1264 Out of range value for column 'number' at row 1

为了使我的数据在应用程序和 MYSQL 之间保持一致,我想捕获它

一种可能的解决方法是通过 PHP 验证输入。但这不是我要找的。

提前谢谢你, 奥莱

感谢 Vicky,

可能的解决方案是在 "SHOW WARNINGS"

上执行 MYSQL 查询

示例:

$warnings = $this->PDO->query("SHOW WARNINGS")->fetchObject();
// example output of $warnings OR NULL
// stdClass Object
// (
//        [Level] => Warning
//        [Code] => 1264
//        [Message] => Out of range value for column 'qty' at row 1 
// }