首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在php中PDO::errorCode (void)的返回值中,它们告诉了哪个类?

问在php中PDO::errorCode (void)的返回值中,它们告诉了哪个类?
EN

Stack Overflow用户
提问于 2018-01-25 19:51:48
回答 1查看 26关注 0票数 0

我们知道,PDO::errorCode ( void )方法返回SQLSTATE,其中返回的值是5个字符的字母数字标识符,其中前两个字符是类的值,其余三个字符是SubClass的值。我的问题是,他们在告诉哪个Class & SubClass?或者是PDO类还是其他什么?

参考链接:PDO->errorCode(void)

有人能看出来吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-25 20:48:25

这个类和子类与PDO或PHP类或面向对象无关。它只是指在SQL中对错误进行分类的方式。正如文档中所述,错误代码是

ANSI SQL-92标准中定义的五个字符字母数字标识符.简单地说,SQLSTATE由两个字符类值和三个字符子类值组成。 ..。 01的类值表示警告 ..。 类值( 01除外)表示错误,但类IM除外。类IM特定于从PDO实现派生的警告和错误。

因此,除了类IM之外,这些代码来自数据库。如果使用命令行工具查询数据库并获得错误,则它们是相同的代码。

代码语言:javascript
复制
mysql> select a from foo bar baz;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'baz' at line 1

42000是错误代码,它的类是42,子类是000。如果使用PDO进行相同的查询,$pdo->errorCode()将返回"42000",$pdo->errorInfo将返回如下所示的数组:

代码语言:javascript
复制
[ "42000", 
  1004, 
  "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'baz' at line 1"   
]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48450831

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档