Sir*_*Sir 1 mysql error-handling go
我真的很困惑如何使用mySQL导入从失败的查询行获取错误类型.没有真正的文档,所以它让我真的很困惑.
目前我有:
result, err := db.Exec("INSERT INTO users (username,password,email) VALUES (?,?,?)", username, hashedPassword, email)
if err != nil {
// handle different types of errors here
return
}
Run Code Online (Sandbox Code Playgroud)
我可以打印错误,但它只是一个字符串,不喜欢偷看字符串的想法,知道出了什么问题,是否没有反馈来获取错误代码来执行switchon或沿着这些线?你怎么做呢?
实际上,检查错误字符串的内容是一种不好的做法,字符串值可能会因驱动程序verison而异.比较错误号以识别特定错误是更好和更健壮的.
mysql驱动程序有错误代码,该包与主驱动程序包分开维护.但是,执行此操作的机制因驱动程序而异,因为这不是数据库/ sql本身的一部分.使用该包,您可以检查错误类型MySQLError:
if driverErr, ok := err.(*mysql.MySQLError); ok {
if driverErr.Number == mysqlerr.ER_ACCESS_DENIED_ERROR {
// Handle the permission-denied error
}
}
Run Code Online (Sandbox Code Playgroud)
还有错误variables.
| 归档时间: |
|
| 查看次数: |
2014 次 |
| 最近记录: |