2013-10-03 19 views
0
<input type="text" name="CODE" size="25" placeholder="Insert code..." /> 

    <input type="text" name="NAME" size="25" placeholder="Insert name..." /> 

    if(isset($_POST['CODE'], $_POST['NAME'])){ 

     $querystring='INSERT INTO Company (Name, Code) VALUES(:Name,:Code);'; 

     $stmt = $pdo->prepare($querystring); 
     $stmt->bindParam(':Name', $_POST['NAME']); 
     $stmt->bindParam(':Code', $_POST['Code']); 
     $stmt->execute(); 

} 

嘿!SQL - 在PHP中處理錯誤(重複輸入)

我遇到的問題是在PHP中以更好的方式顯示SQL錯誤。比方說,我插入一個公司代碼'123'和名稱'ABC'。然後在插入代碼爲'123'的公司後,我顯然會得到該代碼重複輸入的錯誤。

是我得到的錯誤是

Warning: PDOStatement::execute(): SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry 

我wan't簡單地能夠取代這一錯誤或一條警告消息,告訴他試圖已經插入代碼中存在用戶。

希望我設法解釋,謝謝!

回答

1

試圖處理旅遊這樣的查詢,希望它會爲你工作

try{ 
    $pdo->query("INSERT INTO `table`(`name`,`value`)`VALUES('name','value')"); 
} 
catch (PDOException $e) { 
    if($e->errorInfo[0] == '23000' && $e->errorInfo[1] == '1062'){ 
     throw new CustomException("Bla bla already exists"); 
    } 
    else { 
    throw $e; 
    } 
}