2014-04-29 75 views
0

我可以正常檢查是否使用affected_rows()插入記錄,但是我嘗試插入的這條記錄會導致重複的輸入錯誤,並使程序執行停止。Mysqli錯誤會停止程序執行

例子:使用笨

//Insert description     
$this->db->query(" 
INSERT INTO comments_descriptions 
(comment_id, description) 
VALUES 
(?, ?)   
", array($commentID, $description)); 

這部分從未達到:

if ($this->db->affected_rows() !== 1){ 
    // Do stuff... 
} 

我的AJAX調用此只插入返回編號500和Firebug的顯示了內部服務器錯誤每次我嘗試插入重複的語句。我試圖在try/catch塊中圍繞插入,並且仍未捕獲錯誤。請幫忙。

回答

0

comment_id被設置爲唯一,因此輸入多行具有相同的值是不可能的,這會導致重複的輸入錯誤!

目前還不清楚您的表是如何構建的,但您會將描述添加到現有的comment_id中,從而避免重複的輸入錯誤。

+0

我確實需要一個重複的入口檢查,這正是爲什麼該字段具有「唯一」約束。我想避免做一個額外的選擇語句,這就是'唯一'字段的原因。 – boompow

+0

您應該只使用select查詢,它不會讓系統變得非常明顯,您無法繞過錯誤,因爲它會拋出無法從中恢復的500(內部服務器錯誤)。另外,這就是爲什麼我建議你重做表格結構並使comment_id成爲鏈接到評論的外鍵,然後每個評論都會包含一個唯一的關鍵字,那麼如果你願意的話,你可以稍後掃描重複內容。 – Skewled

+0

非常感謝您給我的所有幫助。我發現奇怪的是,重複的條目會創建一個500錯誤,而不是一個能夠處理它。 – boompow