2012-06-26 3 views
0

У меня есть этот запросMySQL проверка разумности запросов, для запроса обновления

update user_remember_me set 
when='2012-07-06 05:44:27', 
hash='c8e9d2c0dd156b5c68d0b048e5daa948e6b8fac7' 
where user = '21'; 

и я получаю эту ошибку

Ошибка: У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом «когда =» 2012-07-06 5:44:27' , хэш = „c8e9d2c0dd156b5c68d0b048e5daa948e6b8fac7“ порога»в строке 1

Im, не пропустив соединение здесь, я использовал простые обновления, такие как везде, без проблем до этого, может быть, мне до усталости, но это будет приводить меня в орехи, пока у меня есть ответ

+0

Как и в сторону, вы должны смотреть в использовании Bcrypt или PBKDF2 для хеширования паролей. SHA1 не очень безопасен для этой цели, и это даже в меньшей степени, если вы не засовываете свои хеши. – Polynomial

ответ

3

Когда ключевое слово в mysql, измените имя столбца или вы можете использовать его как

`when`='2012-07-06 05:44:27' 
+1

doh! почему, разве я не видел, что .. сонное время, быстрое исправление и кровать для меня, спасибо – chris

1

when является reserved word in mysql

update user_remember_me set 
`when`='2012-07-06 05:44:27', 
`hash`='c8e9d2c0dd156b5c68d0b048e5daa948e6b8fac7' 
where user = '21'; 

Таким образом, вы должны кавычкой вашей колонки

1

when это ключевое слово в MySQL. Вы должны избежать этого, если вы хотите использовать его в качестве идентификатора столбца (как следует со всеми идентификаторами столбцов!):

UPDATE user_remember_me 
SET 
    `when`='2012-07-06 05:44:27', 
    `hash`='c8e9d2c0dd156b5c68d0b048e5daa948e6b8fac7' 
WHERE `user` = '21'; 
Смежные вопросы