1064 Ошибка MySQL в декременте с использованием - PullRequest
0 голосов
/ 10 января 2012

Я использую Update videos Set views = views + 1 Where video_id='$id', но MySQL возвращает ошибку 1064:

У вас ошибка в синтаксисе SQL; проверьте руководство, которое соответствует вашей версии сервера MySQL для правильного использования синтаксиса около '8' в строке 1

Что может быть причиной?

1 Ответ

2 голосов
/ 10 января 2012

Скорее всего, $ id - это не то, что вы ожидаете.Я полагаю, что проходящий запрос выглядит примерно так:

update videos set view = views + 1 where video='' 8'';

Примечание. Это две одинарные кавычки по обе стороны от 8.

Чтобы подтвердить это, у вас есть пара вариантов.

  • Включите ведение общего журнала запросов от имени суперпользователя (root) из командной строки mysql и запустите

    set general_log_file = '/ tmp / mysql.log';set general_log = 'on';

Теперь каждый отдельный запрос, отправляемый в mysql, будет отображаться в /tmp/mysql.log (обратите внимание, что это может быстро стать очень большим, поэтому неоставьте его включенным после завершения отладки).

  • Журналы приложений

Есть ли у вас какая-либо работа с рамками регистрации?Перед фактическим вызовом для выполнения запроса запишите значение ($ id).Для плохой регистрации вы можете сделать что-то вроде

file_put_contents ('/ tmp / debug.txt', date ("Ymd H: i: s"). "Id is [$ id] \ n",FILE_APPEND);

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