若要将警告“标记”为PHP本机,将需要更改mysql /
mysqli驱动程序,这显然超出了此问题的范围。相反,您将必须基本上检查在数据库上进行的每个查询中是否存在警告:
$warningCountResult = mysql_query("SELECT @@warning_count");if ($warningCountResult) { $warningCount = mysql_fetch_row($warningCountResult ); if ($warningCount[0] > 0) { //Have warnings $warningDetailResult = mysql_query("SHOW WARNINGS"); if ($warningDetailResult ) { while ($warning = mysql_fetch_assoc($warningDetailResult) { //Process it } } }//Else no warnings}显然,进行批量处理将非常昂贵,因此您可能需要仔细考虑警告的产生时间和方式(这可能会导致您重构以消除它们)。
作为参考,MySQL SHOW WARNINGS
当然,您可以省去对的初始查询
SELECT @@warning_count,这样可以为每次执行节省一个查询,但是我将其包括在了书呆子的完整性中。



