Как выглядит фактически сгенерированный запрос?Вы проверили, успешно ли выполнен запрос?
$result = mysql_query("UPDATE ....") or die(mysql_error());
if (mysql_affected_rows() != 1) {
die("Failed to change password");
}
Часть or die()
будет обрабатывать любые синтаксические ошибки sql, тогда как disabled_rows проверит, обновилось ли что-то.Если количество затронутых строк не равно 1 (при условии, что вы не разрешаете дублирование пар имени пользователя и пароля), значит, что-то работает неправильно.0 = нет затронутых строк, без изменений.> 1 = у вас есть дубликаты пар пользователей и паролей.
Также убедитесь, что вы сравниваете яблоки с яблоками.Если вы храните пароли в зашифрованном / хешированном виде, вам придется сравнить хешированные / зашифрованные пароли, чтобы результаты имели смысл.
... WHERE password='letmein'
потерпит неудачу, если пароль действительно будет храниться как зашифрованныйбинарный мусор.