gpt4 book ai didi

php - 我可以用 PHP 检测和处理 MySQL 警告吗?

转载 作者:IT老高 更新时间:2023-10-29 00:21:06 25 4
gpt4 key购买 nike

我正在处理一个将 JobName 列定义为 UNIQUE 的 MySQL 表。如果有人尝试使用数据库中已有的 JobName 将新 Job 保存到数据库中,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
}

显然,这将非常昂贵地应用 en-mass,因此您可能需要仔细考虑何时以及如何出现警告(这可能会导致您重构以消除它们)。

供引用,MySQL SHOW WARNINGS

当然,您可以省去对 SELECT @@warning_count 的初始查询,这会在每次执行时为您节省一个查询,但为了迂腐的完整性,我将其包括在内。

关于php - 我可以用 PHP 检测和处理 MySQL 警告吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47589/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com