我们知道,PDO::errorCode ( void )方法返回SQLSTATE,其中返回的值是5个字符的字母数字标识符,其中前两个字符是类的值,其余三个字符是SubClass的值。我的问题是,他们在告诉哪个Class & SubClass?或者是PDO类还是其他什么?
参考链接:PDO->errorCode(void)
有人能看出来吗?
谢谢!
发布于 2018-01-25 20:48:25
这个类和子类与PDO或PHP类或面向对象无关。它只是指在SQL中对错误进行分类的方式。正如文档中所述,错误代码是
ANSI SQL-92标准中定义的五个字符字母数字标识符.简单地说,SQLSTATE由两个字符类值和三个字符子类值组成。 ..。
01的类值表示警告 ..。 类值(01除外)表示错误,但类IM除外。类IM特定于从PDO实现派生的警告和错误。
因此,除了类IM之外,这些代码来自数据库。如果使用命令行工具查询数据库并获得错误,则它们是相同的代码。
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 142000是错误代码,它的类是42,子类是000。如果使用PDO进行相同的查询,$pdo->errorCode()将返回"42000",$pdo->errorInfo将返回如下所示的数组:
[ "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"
]https://stackoverflow.com/questions/48450831
复制相似问题