2012-09-16 45 views
3

我有一個MySQL查詢,我想檢查是否有在我的PHP代碼重複的條目,我試圖做這樣的事情:PHP和MySQL - 檢測重複條目

if(!$result) 
{ 
    $error_message = mysql_error(); 

     $pos = strpos ($error_message , 'Duplicate entry'); 

     if($pos === false) 
     { 
      ... Do some error reporting... 

但行$ error_message = mysql_error();似乎正在打破它。有人會知道爲什麼會發生這種情況,以及如何正確檢測重複錯誤消息,因爲這對我來說有點破綻?

+5

只是爲了在編寫過多的代碼之前發出警告:您在此使用的'mysql_xxx()'函數已被視爲已過時,並且不推薦使用。 PHP手冊**強烈建議使用'mysqli_xxx()函數(它們非常相似,但更新且支持更多功能),或者使用PDO庫(這是非常不同但功能更強大的)。 – Spudley

+0

@spudley謝謝你,沒有意識到!所以我應該把所有的函數改爲mysquli而不是mysql? – Genadinik

+1

它並不像加入'i'那麼簡單,但它在基本層面上並不遙遠。 – Spudley

回答

2

你應該看看MySQL的行爲INSERT IGNORE它可以讓你告訴MySQL你正在做一個可能存在重複的插入,如果是的話,什麼也不做。

3

您可以使用mysql_errno或mysqli_errno,然後查找錯誤號1062,這是重複條目的錯誤號。