2011-01-24 97 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列中删除唯一标志。