首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用PHP更新SQL数据库

问使用PHP更新SQL数据库
EN

Stack Overflow用户
提问于 2009-12-17 19:58:03
回答 4查看 199关注 0票数 0

我正试图在我的网站上建立一个密码检索系统,但我在更新数据库中的密码重置字段时遇到了问题。我什么都试过了,但似乎都不管用。

这是我到目前为止的代码:

代码语言:javascript
复制
$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");

当我尝试插入数据时,我得到了错误:

代码语言:javascript
复制
Error: Query was empty

任何帮助都会很感谢,谢谢。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2009-12-17 20:02:09

我不确定这是唯一的问题,但我猜你的密码设置字段是一个字符串,在数据库中--为了存储几个md5的连接,这是字符串,它必须这样做。

因此,在SQL查询中,您在此字段中输入的值应该用引号括起来:

代码语言:javascript
复制
mysql_query("UPDATE members SET passwordreset = '$passwordreset' WHERE id = $id");

而且,在一般情况下,应该使用mysql_real_escape_string对字符串值进行转义:

代码语言:javascript
复制
mysql_query("UPDATE members SET passwordreset = '" 
    . mysql_real_escape_string($passwordreset) 
    . "' WHERE id = $id");

它在这里不会改变任何东西,因为在md5中没有引用...但这是一个很好的实践,永远不要发现自己处于必要的情况下,而你并没有这样做。

票数 2
EN

Stack Overflow用户

发布于 2009-12-17 20:01:17

$passwordreset之后的两个换行符是故意的吗?你能试着把它们移走吗?

票数 0
EN

Stack Overflow用户

发布于 2009-12-17 20:01:22

我不确定您是否会收到一个空查询错误,但您需要在值周围加上记号:

代码语言:javascript
复制
mysql_query("UPDATE members SET passwordreset = '$passwordreset' WHERE id = '$id'");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1921270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档