php - Drupal - 如何识别 mysql 错误类型并打印自定义错误消息

标签 php mysql drupal

我正在开发一个 Drupal 模块。有一个称为货币的表。 currency_code 列设置为 UNIQUE。当我尝试输入重复条目时,drupal 会自动显示如下错误消息:-

.-------------------------------------------------------------------------.
|  user warning: Duplicate entry 'USD' for key 'currency_code'            | 
|  query: INSERT INTO currency(currency_id, currency_name, currency_code) |
|  VALUES (NULL, 'US Dollar', 'USD') in /xxx/currency/currency.admin.inc  |
|  on line 106.                                                           |
.-------------------------------------------------------------------------.

显然我不能只让用户看到这个错误。相反,我想打印一条自定义错误消息,指示错误原因(在这种情况下重复唯一值)。所以我的问题是如何确定导致错误的原因并以用户友好的方式显示它(可能使用 drupal_set_message())。

有什么方法可以将错误消息字符串保存在变量中,以便我可以在后台解析它并打印自定义消息?

最佳答案

Drupal 的数据库抽象层有一个函数叫做db_error。包装 mysql_errno并返回 MySQL error number最后一个查询。

关于php - Drupal - 如何识别 mysql 错误类型并打印自定义错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4793155/

相关文章:

php - 在 debian 中无法通过 glob 'php8.0' 找到任何包

python - 访问Centos服务器上的Docker容器

php - MySQL 错误 1045 访问被拒绝

php - Codeigniter 事件记录从 mysql 获取记录,其中 ID 等于数组中的记录

php - 上传文件后将文件名保存在数据库中

php - 如何通过 PHP 分隔 SQL 联合上的值

mysql - 如何删除字符串开头的所有空格?

css - Drupal View 中 block 和页面的自定义 CSS

php - Drupal 在具有用户交互的 block 中显示表数据

drupal - 如何摆脱 Drupal CSS 样式表?