Wil*_*lco 9 php mysql database pdo
所以我正在为我的网络应用程序设置一个安装程序,并有数据库凭据的输入字段.我的验证过程的一部分包括测试数据库连接(使用PHP的PDO库).如果连接失败,我希望能够区分错误的密码,错误的地址,不存在的数据库名称等,这样我就可以在表单上引用正确的输入字段.
是否可以指向一个引用,该引用概述了PDOException返回的可能错误代码/消息?
编辑:我想到这些错误代码/消息可能是特定于数据库的,并且本机数据库代码/错误可能只是通过.如果是这种情况,我目前只使用MySQL 5数据库.
Bil*_*win 15
MySQL文档是错误代码的完整参考.
从1000开始的错误代码是服务器错误.这些包括以下错误:
错误:1045 SQLSTATE:28000(ER_ACCESS_DENIED_ERROR
)消息:用户'%s'@'%s'的访问被拒绝(使用密码:%s)
错误:1049 SQLSTATE:42000(ER_BAD_DB_ERROR
)消息:未知数据库'%s'
从2000开始的错误代码是客户端错误.这些包括以下错误:
错误:2005(CR_UNKNOWN_HOST
)消息:未知的MySQL服务器主机'%s'(%d)
错误:2003(CR_CONN_HOST_ERROR
)消息:无法连接到'%s'上的MySQL服务器(%d)
我不打算列出所有可能的错误,因为它们已经记录在案,我不知道你需要处理哪些错误.例如,错误2001和2002特定于UNIX套接字连接,这可能与您的目标平台无关.
不要忘记使用PDO::errorCode()
而PDO::errorInfo()
不是简单地使用PDOException
消息.
重新评论一下getCode()
- 不,它似乎不支持这种方式.我做了一个快速测试,到var_dump()
了PDOException
.不幸的是,即使错误代码和SQLSTATE包含在异常消息中,其代码也是简单的"0".
Exception
从PHP 5.1.0版开始,Exception :: getCode()是基类的一部分.由相应的PDO驱动程序实现来使用该对象字段.至少对于MySQL驱动程序,他们显然没有.
归档时间: |
|
查看次数: |
7094 次 |
最近记录: |