gpt4 book ai didi

php - mySQL:比较当前密码,然后在 1 个查询中更新为新密码?

转载 作者:行者123 更新时间:2023-11-29 09:02:00 25 4
gpt4 key购买 nike

我正在用 PHP 编写一个脚本,以允许用户更改其密码。我让他们输入旧密码(即使他们已经登录),然后输入新密码。我试图比较旧密码,然后将字段更新为新密码,而不运行两个单独的查询,但我的代码没有像我预期的那样工作。这里有错误吗?或者由于某种原因不允许这样做?你有什么建议?

mysql_query("更新用户 SET userpass = '$encryptedPW' WHERE userid = '$uid' AND userpass = '$currentPW'");

我可以查看 mySQL 是否按照编写的顺序执行任务,但它必须找到该行才能更新它,对吧? p>

非常感谢!

比利

预计到达时间:抱歉!错别字!

最佳答案

实际生成的查询是什么样的?检查一下query查询是否成功?

$result = mysql_query("UPDATE ....") or die(mysql_error());
if (mysql_affected_rows() != 1) {
die("Failed to change password");
}

或 die() 部分将处理任何 sql 语法错误,而受影响的行将检查是否有某些内容已更新。如果受影响的行计数不是 1(假设您不允许重复的用户名/密码对),则说明某些内容无法正常工作。 0 = 没有受影响的行,没有进行任何更改。 >1 = 您有重复的用户/密码对。

还要确保您进行同类比较。如果您以加密/散列形式存储密码,则必须比较散列/加密密码才能使结果有意义。

... WHERE password='letmein'

如果密码实际上存储为加密的二进制垃圾,则会失败。

关于php - mySQL:比较当前密码,然后在 1 个查询中更新为新密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8330275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com