2011-01-24 154 views
0

我有一個問題,我無法弄清楚。我有一些代碼可以讓用戶選擇哪種水果是他們最喜歡的。如果他們之前選擇了「蘋果」作爲他們的最愛,並且想將其改爲「桔子」 - 劇本表現良好。PHP的Mysql更新問題

但是,如果他們選擇「蘋果」時選擇「蘋果」,MYSQL更新呼叫就會中斷並返回錯誤。這就像它不會用相同的數據自己寫出來一樣,新的值必須是唯一的。我茫然....下面是更新位:

// UPDATE THEIR FRUIT SELECTION... 
    $q = "UPDATE account SET fav_fruit='" . $row['fruit'] . "' WHERE act_id=$act_id LIMIT 1";  
    $r = @mysqli_query ($dbc, $q); 
    if (mysqli_affected_rows($dbc) == 1) { // If it ran OK. 
      echo 'success!'; 

    } else { 
     echo 'oops!'; 
    } 

同樣,這個只要可以作爲新的選擇,什麼是數據庫是不一樣的。如果他們是:我得到了哎呀!錯誤。

+1

什麼錯誤?爲什麼在`mysqli_query`之前需要`@`? – zerkms 2011-01-24 04:42:21

+0

該錯誤是nondescript - 我自己的文本,而不是一個mysql標準錯誤:「由於系統錯誤,用戶無法更新。」 – WillHerndon 2011-01-24 04:43:46

回答

1

爲什麼你需要更新一個字段以包含它已經包含的值?無論如何,這可以通過改變表格結構來解決。您需要從fav_fruit列中刪除唯一標誌。