MYSQL запрос на обновление php - PullRequest
0 голосов
/ 27 апреля 2010

Я пытаюсь использовать запрос на обновление, чтобы изменить значения, хранящиеся в базе данных, новые значения, которые я пытаюсь сохранить, хранятся в переменных php.Я не уверен, что я делаю не так.

mysql_query ("ОБНОВЛЕНИЕ пользователя SET status = 'full' WHERE user_id = '$ user_id'") или die (mysql_error ());

вот сообщение об ошибке

Дублирующая запись '91317691' для ключа 1

заранее спасибо

Ответы [ 4 ]

1 голос
/ 28 апреля 2010

Это означает, что в уникальном ключе есть дублирование. Предполагается, что вы используете уникальные значения на (user_id, status), а status имеет тип enum, если в этом случае у вас уже есть запись, соответствующая той, которую вы пытаетесь обновить.

| user_id | status |
| 1234    | full   |
| 1234    | none   |

, если это не так, будет полезна схема размещения.

0 голосов
/ 28 апреля 2010

Извините, я понял, что проблема была вызвана в другом месте в моем PHP-скрипте, но я решил ее.

спасибо за ваше руководство

0 голосов
/ 27 апреля 2010

Похоже, ваше поле user_id является целым числом. Помещение вокруг него сломает вещи

попробуйте без кавычек

mysql_query("UPDATE user SET status='full' WHERE user_id = $user_id")or die(mysql_error());
0 голосов
/ 27 апреля 2010

Я думаю, вам нужно изменить

... '"+ $ user_id +"' "...

поставить закрывающую двойную кавычку" после сингла, а затем добавить свой $ user_idзатем добавьте заключительное закрывающее "'" (двойная кавычка, одинарная кавычка, двойная кавычка)

Кроме того, если у вас нет контроля над переменной $ user_id, вы можете быть открыты для атак SQL-инъекцией

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...