2013-12-22 7 views
1

У меня есть следующие строки:Обновление нескольких строк/столбцов в PHP/MySQL

$reset = "UPDATE pidgeon SET obt='" . $hour . "' WHERE tag='" . $tag . "'"; 

Какие обновления просто отлично. Однако мне нужно обновить дополнительную строку (kill), и я продолжаю получать синтаксические ошибки. Я попытался следующие:

$reset = "UPDATE pidgeon SET obt='" . $hour . "', kill='1' WHERE tag='" . $tag . "'"; 

$reset = "UPDATE pidgeon SET kill='1', obt='" . $hour . "' WHERE tag='" . $tag . "'"; 

$reset = "UPDATE pidgeon SET obt='" . $hour . "', kill='" . $num . "' WHERE tag='" . $tag . "'"; 

Я даже сделал 2 отдельных запросов UPDATE, и я получаю то же сообщение об ошибке синтаксиса. Я сузил его до системы с выпуском строки kill, но я не уверен, в чем проблема. Я пробовал установить kill как INT, SMALLINT, BOOL, даже CHAR и пытается использовать для этого значения t/f. Я все еще получаю синтаксическую ошибку. Какие-либо предложения?

+0

Какая синтаксическая ошибка вы получаете? – andrewsi

+0

Возможный дубликат [Синтаксическая ошибка из-за использования зарезервированного слова в качестве имени таблицы или столбца в MySQL] (http://stackoverflow.com/questions/23446377/syntax-error-due-to-using-a-reserved-word -as-a-table-or-column-name-in-mysql) – michaelb958

ответ

1

KILL является reserved keyword, так что вы должны заключить его в обратные кавычки, например:

$reset = sprintf("UPDATE pidgeon SET `kill`='1', obt='%s' 
WHERE tag='%s'", $hour, $tag); 
+1

+1 Или переименуйте его – AlexP

+0

@AlexP: Абсолютно. Всегда лучше использовать более описательное имя столбца. –

+0

Ты лучший! Спасибо огромное! Его всегда самые глупые ошибки. – xv47

0

Kill на самом деле синтаксис, вы не можете использовать их непосредственно.

Просто замените kill на другое название.

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