关于 php:如何在 PDO 错误中获取列名?

how to get column names in PDO error?

当我使用 PDO 时 errorInfo

我明白了:

1
2
3
4
5
Array (
[0] => 23000
[1] => 1062
[2] => Duplicate entry ‘zzz@zzz.net’ for key ’email’
)

但我只想得到列名 > //’email//’ 和 1062 来回显错误代码:

this email zzz@zzz.net already registered

因为我使用电子邮件或电话或用户名进行注册


我认为这样做的唯一方法是使用正则表达式。您可以使用 preg_replace_callback 来搜索和替换文本。

1
2
3
4
5
6
7
8
list(, $code, $message) = $dbh->errorInfo();
// check if duplicate error
if ($code === 1062) {
    echo preg_replace_callback("/^Duplicate entry ‘(.*)’ for key ‘(.*)’$/", function ($m) {
       return sprintf("this %s %s already registered", $m[2], $m[1]);
    }, $message);
    // this email zzz@zzz.net already registered
}


原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/database/271028.html

(0)
上一篇 2022年7月3日 00:10
下一篇 2022年7月3日 00:11

相关推荐

发表回复

登录后才能评论