mysql - 如何解析MySQL错误

标签 mysql go error-handling

我正在尝试解析 MySQL 错误,以便从 Go API 向用户返回干净的错误消息。

我读了一些类似 this one 的文章这显示了我想做什么,但它看起来像模块 go-mysql-driver我正在使用的那个不支持 parseError。

举个具体的例子,报错:

Error 1062: Duplicate entry 'John' for key 'name_UNIQUE'

我希望能够构建一个数据结构,使我能够组织信息以便返回用户友好的消息,例如

Error with the field 'name': 'John' already exist"

因此我还可以将其翻译成不同的语言,并将随时可用的错误消息发送回客户端。

谢谢!

最佳答案

我在 packets.go 中找到了一些提示和 driver_test.go

例子:

me, ok := err.(*mysql.MySQLError)
if !ok {
    return err
}
if me.Number == 1062 {
    return errors.New("It already exists in a database.")
}
return err

me.Number 的可能值可以在 mysql documentation 中找到

关于mysql - 如何解析MySQL错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38493985/

相关文章:

mysql - phpmyadmin 日期查询

协程死锁?

json - 如何从 HTTP 响应正文中读取错误

go - Go 例程中的 Websockets : error previous message not read to completion

node.js - pageres 中的错误处理 (PhantomJS)

python - 为什么即使不执行某些代码也会出现错误?

mysql - 如何按组菜单对数据进行排序?

c# - 数据库中的值在文本框中不可见,请将值插入到正确的用户名中

php - MySQL保存数据时添加时间戳

php - 寻找通用的 PHP error_handler