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」(%d)でMySQLサーバーに接続できません
考えられるすべてのエラーはすでに文書化されているため、リストするつもりはありません。また、どのエラーを処理する必要があるのかわかりません。たとえば、エラー2001および2002はUNIXソケット接続に固有であり、ターゲットプラットフォームとは無関係である可能性があります。
PDO::errorCode()
を使用することを忘れないでください
およびPDO::errorInfo()
単にPDOException
の代わりに メッセージ。
getCode()
についてのコメントを再確認してください -いいえ、そのようにはサポートされていないようです。 var_dump()
に対して簡単なテストを行いました PDOException
。残念ながら、エラーコードとSQLSTATEが例外メッセージに含まれていても、そのコードは単純な「0」です。
Exception ::getCode()
基本のException
の一部です クラス、PHPバージョン5.1.0以降。このオブジェクトフィールドを利用するかどうかは、それぞれのPDOドライバーの実装次第です。少なくともMySQLドライバーについては、明らかにそうではありませんでした。