我可以使用PHP检测和处理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的初始查询,这样可以为每个执行节省一个查询,但是我将其包括在内.

原文链接:https://www.f2er.com/php/131931.html

猜你在找的PHP相关文章