Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Drupal-如何识别mysql错误类型并打印自定义错误消息_Php_Mysql_Drupal - Fatal编程技术网

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

Php Drupal-如何识别mysql错误类型并打印自定义错误消息,php,mysql,drupal,Php,Mysql,Drupal,我正在开发一个Drupal模块。有一张叫做货币的桌子。“货币代码”列设置为唯一。当我尝试输入重复条目时,drupal会自动显示如下错误消息:- .-------------------------------------------------------------------------. |用户警告:键“货币代码”重复输入“USD” |查询:插入币种(币种标识、币种名称、币种代码)| |/xxx/currency/currency.admin.inc中的值(空,'美元','美元')| |第

我正在开发一个Drupal模块。有一张叫做货币的桌子。“货币代码”列设置为唯一。当我尝试输入重复条目时,drupal会自动显示如下错误消息:-

.-------------------------------------------------------------------------. |用户警告:键“货币代码”重复输入“USD” |查询:插入币种(币种标识、币种名称、币种代码)| |/xxx/currency/currency.admin.inc中的值(空,'美元','美元')| |第106行| .-------------------------------------------------------------------------. 显然,我不能让用户看到这个错误。相反,我想打印一条自定义错误消息,指明错误的原因(在本例中是唯一值的复制)。因此,我的问题是如何识别导致错误的原因并以用户友好的方式显示它(可能使用drupal_set_message())


有没有办法将错误消息字符串保存在变量中,这样我就可以在后台解析它并打印cusom消息了?

Drupal的数据库抽象层有一个函数,名为包装并返回上次查询的结果。

Drupal的数据库抽象层有一个函数,名为包装并返回上次查询的结果。

首先,您应该通过错误的编号来解释错误,而不是通过解析字符串来解释错误,因为字符串可能会发生更改


第二,更好的做法是预测并更好地处理这个问题。例如,如果这个问题是可以忽略的,也许更合适。如果它不可忽略,那么可能适当的方法是检查并显示适当的消息,而不是依赖于查询失败。

首先,您应该通过其编号来解释错误,而不是通过解析字符串来解释错误,因为字符串可能会发生更改


第二,更好的做法是预测并更好地处理这个问题。例如,如果这个问题是可以忽略的,也许更合适。如果它不可忽略,那么可能适当的方法是检查并显示适当的消息,而不是依靠查询失败。

您应该使用devel的dprint\r($array)函数以及它提供的其他函数来显示用户友好的错误消息


如果您只是想隐藏它,请将“管理”中的“错误报告”设置为“日志”。

您应该使用devel的dprint\u r($array)功能以及它提供的其他功能来显示用户友好的错误消息

如果您只是想隐藏它,请将“管理”中的“错误报告”设置为“日志”

.-------------------------------------------------------------------------. | 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. | .-------------------------------------------------------------------------.