dpmp9359 2016-10-16 23:59
浏览 65
已采纳

2006年从mysqli迁移到PDO的错误代码映射

I'm converting a PHP code, which uses mysqli for connecting to mysql database, to a PHP code that uses PDO for connecting to mysql database.

Is there a SQLSTATE which is equivalent to the error code 2006 in mysqli?

Because a piece of my code is written like this:

switch($this->_dbi->errno){
    case 2006:
        $this->close();
        throw new Exception();
        break;
}

How can I use PDO to rewrite this code?

SQLSTATE is the return value of PDO::errorCode.

Error 2006(CR_SERVER_GONE_ERROR) means MySQL server has gone away

  • 写回答

1条回答 默认 最新

  • dongshu9458 2016-10-17 22:08
    关注

    You can use the array of PDO::errorInfo. There you get an array like the following:

    Array
    (
        [0] => HY000
        [1] => 1
        [2] => near "bogus": syntax error
    )
    
    • 0: This is the same value like on PDO::errorCode.
    • 1: The error number. Different between the database providers, but here would be your error number 2006.
    • 2: The error message / description.

    Your example would look like this:

    switch ($pdo->errorInfo()[1]) {
        case 2006:
            $this->close();
            throw new Exception();
            break;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部