2012-01-08 3 views
3

Я новичок в PHP & SQL. Я пытаюсь обновить пароль из моей базы данных, и я не могу понять заявление SQL, так что я сделал некоторые исследования и наткнулся на этот SQL заявление:SQL-обновление паролей MD5

UPDATE `Users` SET password= passwordmd5 (password) 

Затем я добавил немного больше кода следующим образом:

UPDATE `Users` SET password= tony123 MD5 (password) WHERE user_id = 55 

Я получаю следующее сообщение об ошибке:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MD5 (password) WHERE user_id = 55' at line 1 

Что мне делать?

+0

первую очередь, ваш синтаксис является недопустимым. Во-вторых, лучше описывайте, что вы пытаетесь сделать? –

+0

«password» as md5 is 5f4dcc3b5aa765d61d8327deb882cf99 – Andrew

ответ

4

это будет работать после добавления строки подключения к БД в файл PHP:

<?php 
$password = 'tony123'; 
$passwordmd5 = md5($password); 
$q = mysql_query("UPDATE `Users` SET password = '$passwordmd5' WHERE user_id = 55"); 
?> 

PHP/MySQL соединение исх: http://php.net/manual/en/function.mysql-connect.php

+0

Я не понимаю, почему это проголосовало. Этот вопрос имеет тег «php», а верхний код четко его решает. –

+0

stackoverflow иногда просто меня обманывает! Я спрашиваю здесь подлинный quesiton, и меня проголосовали некоторые так называемые «уважаемые пользователи», которые считают, что они лучшие во всем !!! –

21

Правильный синтаксис будет таким:

UPDATE Users 
SET password = MD5('tony123') 
WHERE user_id = 55; 

Или , если вы храните пароль в виде обычного текста и хотите преобразовать их в хэши, сделайте следующее:

UPDATE Users 
SET password = MD5(password); 
+0

Спасибо @sergiot, я использовал этот 'UPDATE User SET пароль = MD5 (пароль);' с небольшой модификацией для моей базы данных, и это сработало как шарм! Это избавило меня от обновления каждой записи вручную ... :) – amaster

+2

Маленький намек: если новый пароль (хэш) такой же, как и существующий - результат sql покажет вам: 'строка будет затронута';) – Silvan

2

я сохранил пароль в виде текста в БД, и когда я преобразовал его на MD5 пароль я использовал этот запрос,

UPDATE tablename SET columname = MD5(columname); 

в приведенном выше запросе вы можете использовать любой метод вместо MD5 пути замены MD5 ,

1

Другой подход:

UPDATE Users 
SET password = PASSWORD('tony123') 
WHERE user_id = 55; 

более info

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