2016-10-17 31 views
3

我正在將使用mysqli連接到mysql數據庫的PHP代碼轉換爲使用PDO連接到mysql數據庫的PHP代碼。2006用於從mysqli遷移到PDO的錯誤代碼映射

是否有SQLSTATE這相當於mysqli中的錯誤代碼2006

因爲一塊我的代碼是這樣寫的:

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

如何使用PDO來重寫這段代碼?

SQLSTATEPDO::errorCode的返回值。

錯誤2006年(CR_SERVER_GONE_ERROR)表示MySQL服務器已消失

+0

試試['PDO :: errorInfo'(http://php.net/manual/pdo.errorinfo.php)代替,元素#1 - *「驅動程序特定的錯誤代碼」* – Phil

回答

1

您可以使用PDO::errorInfo數組。在那裏,你得到一個數組類似如下:

Array 
(
    [0] => HY000 
    [1] => 1 
    [2] => near "bogus": syntax error 
) 
  • 0:這就好比在PDO::errorCode相同的值。
  • 1:錯誤編號。數據庫提供者之間不同,但這裏是您的錯誤編號2006.
  • 2:錯誤消息/說明。

你的榜樣應該是這樣:

switch ($pdo->errorInfo()[1]) { 
    case 2006: 
     $this->close(); 
     throw new Exception(); 
     break; 
} 
+0

感謝您的幫助:-) – Brian