我可以使用 PHP 检测和处理 MySQL 警告吗?
Can I detect and handle MySQL Warnings with PHP?我正在处理一个将 JobName 列定义为 UNIQUE 的 MySQL 表。如果有人尝试使用数据库中已有的 JobName 将新 Job 保存到数据库,MySQL 会抛出警告。 我希望能够在我的 PHP 脚本中检测到这个警告,就像一个错误一样,并适当地处理它。理想情况下,我想知道 MySQL 抛出了什么样的警告,以便我可以分支代码来处理它。 这可能吗?如果不是,是因为MySQL没有这个能力,PHP没有这个能力,还是两者都有? 对于 PHP 本身"标记"的警告需要更改 mysql/mysqli 驱动程序,这显然超出了这个问题的范围。相反,您将不得不基本上检查您对数据库进行的每个查询是否有警告:
显然,这将非常昂贵地应用 en-mass,因此您可能需要仔细考虑何时以及如何出现警告(这可能会导致您重构以消除它们)。 供参考,MySQL SHOW WARNINGS 当然,您可以省去 首先,您应该关闭警告,这样您的访问者就不会看到您的 MySQL 错误。其次,当你调用 看起来这是您要查找的错误号:
可能就是你要找的。 然后可以使用自定义 PHP 错误处理程序来处理 PHP 错误,但您也可以关闭显示 php 错误,因为它们通常会记录到日志文件中(取决于您的 php 配置)。 关于抑制警告的注意事项:通常,阻止显示警告不是一个好主意,因为您可能会遗漏一些重要的东西。如果您出于某种原因绝对必须隐藏警告,您可以通过在语句前面放置 示例:
可以得到警告,而且使用 mysqli 比使用 mysql 更有效。 这里是 php.net 手册页上为属性 mysqli-warning_count 建议的代码:
您可以使用 mysqli 语句错误号检测唯一键违规。 mysqli 语句返回错误 1062,即 ER_DUP_ENTRY。您可以查找错误 1062 并打印合适的错误消息。如果您还想打印列 (jobName) 作为错误消息的一部分,那么您应该解析语句错误字符串。
根据您正在使用的(如果有的话)框架,我建议您自己进行查询以检查作业名称,并为用户创建适当的信息以及表单的其余验证。 根据作业名称的数量,您可以将名称发送到包含表单的视图,并使用 javascript 告诉使用哪个被占用。 如果这对您没有意义,那么总结一下我的观点是:不要设计您的程序和/或用户来尝试做非法的事情并在他们这样做时捕获错误并随后处理它。恕我直言,将系统设计为不产生错误要好得多。将错误保留为实际错误 :) 已更新以删除有关 errno 函数的内容,我现在意识到这些内容不适用于您的情况... MySQL 中对于 所以我想也不能依赖使用 |
相关内容
-
IE脚本错误如何做Web脚本错误解决技巧
IE脚本错误如何做Web脚本错误解决技巧,,这个问题是由于这样的...
-
通过备份记录获得数据库的增长
通过备份记录获得数据库的增长,,通常你想知道数据库是否正在增...
-
电脑不断重启检测硬盘|电脑重启检查硬盘
电脑不断重启检测硬盘|电脑重启检查硬盘,,1. 电脑重启检查硬盘...
-
怎么检测电脑硬件问题
怎么检测电脑硬件问题,电脑硬件,检测,怎么,电脑硬件故障的几种...
-
计算机无法识别SATA硬盘计算机来检测SATA硬盘(解
计算机无法识别SATA硬盘计算机来检测SATA硬盘(解决方案)。,,故障...
-
电脑系统检测不到系统盘|电脑系统检测不到系统
电脑系统检测不到系统盘|电脑系统检测不到系统盘怎么办,,1. 电...
-
xp电脑开机检查硬盘|xp系统每次启动都检测硬盘
xp电脑开机检查硬盘|xp系统每次启动都检测硬盘,,xp系统每次启...
-
电脑内存与检测软件|电脑检测内存工具
电脑内存与检测软件|电脑检测内存工具,,电脑检测内存工具含义: ...
-
笔记本电脑如何检测主板故障|如何排查电脑主板
笔记本电脑如何检测主板故障|如何排查电脑主板故障,,1. 如何排...
-
当前页的脚本失败的解决方案_计算机错误
当前页的脚本失败的解决方案_计算机错误,,核心提示:最近打开网...
-
PostgreSQL数据库修改sql表的方法汇总
PostgreSQL数据库修改sql表的方法汇总,字段,默认值, 一,修改表 ...
-
电脑店硬盘|电脑硬盘检测工具
电脑店硬盘|电脑硬盘检测工具,,电脑硬盘检测工具说起硬盘坏道...
-
蓝牙耳机能在电脑上用吗|电脑可以使用蓝牙耳机
蓝牙耳机能在电脑上用吗|电脑可以使用蓝牙耳机吗?,,1. 电脑可...
-
电脑cpu损坏检测|检测cpu是否损坏
电脑cpu损坏检测|检测cpu是否损坏,,1. 检测cpu是否损坏cpu没有...
-
电脑怎么检测新硬盘|电脑怎么检测新硬盘有没有
电脑怎么检测新硬盘|电脑怎么检测新硬盘有没有坏道,,电脑怎么...