2013-05-09 50 views
3

我更新查詢軌道誤差

$查詢= $ DB->製備(「UPDATE SET用戶UserID = '6',UserName = 'XYZ' 其中userid = '6' 「); $ query-> execute();

它運行良好,但是當我改變字段用戶名UserNamee

$查詢= $ DB->製備(「UPDATE SET用戶UserID = '6',UserNamee =」 xyz'WHERE UserID ='6'「); $ query-> execute();

它應該顯示錯誤,但它不顯示任何錯誤

我只是想處理這些樣的錯誤在我的項目。

+1

http://stackoverflow.com/q/8992795/251311 – zerkms 2013-05-09 07:13:22

+1

如果你沒有發現錯誤,你不能處理它們,所以你沒有完全控制你的程序中發生了什麼。我不建議你這樣做。 – Baronth 2013-05-09 07:32:16

+0

@Baronth這是不正確的。 PHP有很多方法可以處理錯誤而不會捕獲錯誤。並且PHP比平常的PHP用戶的方法更好。 – 2013-05-09 07:35:20

回答

1

您可以跟蹤使用的errorCode在PDO的錯誤()功能此函數返回0000時無錯誤,否則返回一個4位數字(錯誤代碼),例如,您可以嘗試:

$query = $db->prepare("UPDATE user SET UserID='6',UserNamee='xyz' WHERE UserID= '6' ");   

$query->execute(); 

if($query->errorCode()=='0000') 
{ echo 'no error'; } 
else 
{ echo 'error'; } 
0

您應該使用的try-catch:

 try { 

      $query = $db->prepare("UPDATE user SET UserID='6',UserName='xyz' WHERE UserID= '6' "); 
      $query->execute(); 

     } catch (PDOException $e) { 
      echo $e->getMessage(); 
     } 

記住在數據庫連接後,要做到這一點:

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
+0

解釋爲什麼請... – Baronth 2013-05-09 07:25:45

+0

感謝您的關注,但它不適合我的工作。 – 2013-05-09 07:31:36

+0

對不起,回答改變了! – Baronth 2013-05-09 07:37:40

-1
 $db->setAttribute(PDO::ATTR_EMULATE_PREPARES,false); 
     $query = $db->prepare("UPDATE user SET UserID='6',UserNamee='xyz' WHERE UserID= '6' "); 

     if (!$query) { 
       print_r($db->errorInfo()); 
     } 
else 
    $query->execute();