对于本来对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
}
显然这是应用集团的,这是非常昂贵的,所以你可能需要仔细考虑什么时候和如何发生警告(这可能会导致你重构消除它们).
当然,您可以省略SELECT @@ warning_count的初始查询,这样可以为每个执行节省一个查询,但是我将其包括在内.