【问题标题】:MySQL error code categoriesMySQL错误代码类别
【发布时间】:2011-11-30 02:16:11
【问题描述】:

我知道 MySQL 错误分为客户端和服务器类型。有没有人发现编号中的任何进一步结构?

我喜欢对用户隐藏错误并尝试恢复并继续执行的应用程序,因此我尝试从打印诸如“Doh!连接失败”之类的字符串切换。到数据库异常的自定义类和单个处理程序,以捕获所有数据库连接错误,这些错误未在抛出它们的函数中捕获或被重新抛出。我想我可以尝试在那里恢复并在失败时重新投掷。我想我可能会尝试对不同类型的错误(如连接失败、内存错误、准备程序错误等)使用不同的 catch 块,当我试图找出一个连接错误的测试开始时,似乎有几个集群这可能相关,但是我不确定其中一些是否是连接错误!例如:错误 2048:(CR_INVALID_CONN_HANDLE)无效的连接句柄。(什么时候会发生这种情况?!?)

briandunning.com/error-codes/?source=MySQL 中列出的一些错误具有 SQLSTATE 代码。这些是什么?

我希望我可以使用现有代码测试一个或多个范围。 有没有其他人尝试过这样做?有梨包吗?一本好书怎么样?

如果他们不遵循逻辑模式,我最好滚动自己的自定义代码吗?有没有更好的方法我看不到?这是我第一次有例外,所以我可能会错了。谢谢!

【问题讨论】:

    标签: php mysql exception-handling error-handling


    【解决方案1】:

    列出的一些错误具有 SQLSTATE 代码。这些是什么?

    来自 MySQL 手册:

    const char *mysql_sqlstate(MYSQL *mysql)
    返回一个以 null 结尾的字符串,其中包含最近执行的 SQL 语句的 SQLSTATE 错误代码。错误代码由五个字符组成。 “00000”表示“没有错误”。 值由 ANSI SQL 和 ODBC 指定

    这个页面及其子页面应该告诉你所有你需要知道的:
    http://dev.mysql.com/doc/refman/5.0/en/error-handling.html

    以下是来自 IBM 的 SQLSTATE 错误列表,该列表包含在 5 个字符错误代码后面的结构中:http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ibm.sqls.doc/sqls520.htm

    引用:

    下表是解释类代码值的快速参考。

    SQLSTATE
    Class_Code_Value 结果
     00 成功
     01 警告成功
     02 没有找到数据
     >=03 错误或警告

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-11-13
      • 2016-02-17
      • 2013-08-18
      • 1970-01-01
      • 1970-01-01
      • 2015-04-29
      • 2013-03-08
      • 2016-03-31
      相关资源
      最近更新 更多