我正在处理一个将JobName列定义为UNIQUE的
MySQL表.如果有人尝试使用已经在数据库中的JobName将新的作业保存到数据库,MysqL会发出警告.
我想在我的PHP脚本中能够检测到这个警告,就像一个错误,并且正确地处理它.理想情况下,我想知道MysqL抛出什么样的警告,以便我可以分配代码来处理它.
对于本来对PHP进行“标记”的警告,需要更改MysqL / MysqLi驱动程序,这显然超出了这个问题的范围.相反,您将必须基本上检查您在数据库上所做的每个查询,以获取警告:
原文链接:https://www.f2er.com/php/131931.html$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的初始查询,这样可以为每个执行节省一个查询,但是我将其包括在内.