2011-01-24 3 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

+0

ошибка не указана - мой собственный текст, а не стандартная ошибка mysql: «Пользователь не может быть обновлен из-за системной ошибки». – WillHerndon

+0

Использование @ для подавления ошибок обычно неодобрительно. Гораздо лучше просто установить 'error_reporting()' в скрипте или PHP.ini равным нулю. –

ответ

1

Зачем вам нужно обновлять поле, чтобы содержать значение, которое оно уже содержит? Несмотря на это, это можно устранить, изменив структуру таблицы. Вам нужно удалить уникальный флаг из столбца fav_fruit.

+0

Я проверил мою базу данных, этот столбец не отмечен уникальным. – WillHerndon

+0

Есть ли причина, по которой вам нужно обновить значение уже сохраненного значения? –

+0

Вид - я имею в виду, что они должны иметь возможность выбирать разные значения и изменять это, когда это необходимо. Если бы существовал способ в основном сказать: «Эй, ты выбрал этот выбор, но здесь другие» и просто оставьте значение, которое уже было сохранено, это было бы круто. – WillHerndon

Смежные вопросы