我可以使用PHP检测和处理MySQL警告吗?
发布时间:2020-12-13 16:39:40 所属栏目:PHP教程 来源:网络整理
导读:我正在处理一个将JobName列定义为UNIQUE的 MySQL表.如果有人尝试使用已经在数据库中的JobName将新的作业保存到数据库,MySQL会发出警告. 我想在我的PHP脚本中能够检测到这个警告,就像一个错误,并且正确地处理它.理想情况下,我想知道MySQL抛出什么样的警告,以
我正在处理一个将JobName列定义为UNIQUE的
MySQL表.如果有人尝试使用已经在数据库中的JobName将新的作业保存到数据库,MySQL会发出警告.
我想在我的PHP脚本中能够检测到这个警告,就像一个错误,并且正确地处理它.理想情况下,我想知道MySQL抛出什么样的警告,以便我可以分配代码来处理它. 这可能吗?如果不是,是因为MySQL没有这种能力,PHP没有这种能力,还是两者兼而有之?
对于本来对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的初始查询,这样可以为每个执行节省一个查询,但是我将其包括在内. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |