Обновление базы данных SQL с использованием PHP - PullRequest
0 голосов
/ 17 декабря 2009

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

Это мой код:

$passwordreset = md5(mt_rand()) . md5(mt_rand()) . md5(mt_rand());

$con = mysql_connect("localhost","XXX","XXX");
if (!$con) {
  die('Could not connect: ' . mysql_error());
}

mysql_select_db("database", $con);

mysql_query("UPDATE members SET passwordreset = $passwordreset WHERE id = $id");

Когда я пытаюсь вставить данные, я получаю сообщение об ошибке:

Error: Query was empty

Любая помощь будет оценена, Спасибо.

Ответы [ 4 ]

2 голосов
/ 17 декабря 2009

Не уверен, что это единственная проблема, но я предполагаю, что ваше поле для сброса пароля является строкой, в базе данных - для хранения конкатенации нескольких md5, которые являются строками, это должно.

Итак, в значении SQL, указанном в этом поле, в кавычках должны быть кавычки:

mysql_query("UPDATE members SET passwordreset = '$passwordreset' WHERE id = $id");


И, в общем случае, вы должны экранировать свои строковые значения с помощью mysql_real_escape_string:

mysql_query("UPDATE members SET passwordreset = '" 
    . mysql_real_escape_string($passwordreset) 
    . "' WHERE id = $id");

Здесь ничего не изменится, так как в md5 нет цитаты ... Но всегда полезно делать это, никогда не оказываться в ситуации, когда это было необходимо, а вы этого не делали .

0 голосов
/ 17 декабря 2009

Я думаю, что пробелы вокруг названий столбцов отсутствуют, попробуйте:

mysql_query("UPDATE members SET `passwordreset` = '$passwordreset' WHERE `id` = '$id'");
0 голосов
/ 17 декабря 2009

Я не уверен, если вы получите пустую ошибку запроса для этого, но вам нужно пометить значения:

mysql_query("UPDATE members SET passwordreset = '$passwordreset' WHERE id = '$id'");
0 голосов
/ 17 декабря 2009

Преднамеренно ли два переноса строки после $passwordreset? Можете ли вы попробовать удалить их?

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