У меня проблема, которую я не могу понять. У меня есть немного кода, который позволяет пользователю выбирать, скажем, какой тип фруктов является их любимым. Если они ранее выбрали «яблоки» в качестве своего любимого и хотят изменить его на «апельсины» - скрипт хорошо работает.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!';
}
Опять же, это работает так долго, как новый отбор и то, что в базе данных не совпадают. Если они: я получаю упс! ошибка.
Какая ошибка? Зачем вам '@' перед 'mysqli_query'? – zerkms
ошибка не указана - мой собственный текст, а не стандартная ошибка mysql: «Пользователь не может быть обновлен из-за системной ошибки». – WillHerndon
Использование @ для подавления ошибок обычно неодобрительно. Гораздо лучше просто установить 'error_reporting()' в скрипте или PHP.ini равным нулю. –