使用PHP更新SQL数据库
我正在尝试在我的网站上创建密码检索系统,并且在更新数据库中的密码重置字段时遇到问题。我尝试了一切,但似乎没有任何工作。使用PHP更新SQL数据库
这是我到目前为止的代码:
$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
任何帮助,将不胜感激,谢谢 。
不知道这是唯一的问题,但我猜你passwordreset场数据库中的一个字符串 - 用于存储多个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无报价...但它是一个很好的做法,始终做到这一点,永远不会发现自己在一个情况下,有必要和你没”不要这样做。
感谢您的回复,仍然无法正常工作,得到同样的错误 – Crazyd22 2009-12-17 12:12:15
$passwordreset
之后的两条线是故意的吗?你可以尝试删除它们吗?
他们不应该是一个问题。我有很多很长的MySQL语句,换行符和php/MySQL都没有问题。 – flokra 2009-12-17 12:46:30
我不知道,如果你得到了这个空查询错误,但你需要蜱周围的值:
mysql_query("UPDATE members SET passwordreset = '$passwordreset' WHERE id = '$id'");
我想周围的列名反引号丢失,尝试:
mysql_query("UPDATE members SET `passwordreset` = '$passwordreset' WHERE `id` = '$id'");
确定此消息来自这个特定的查询?你如何得到错误? – 2009-12-17 12:51:39