gpt4 book ai didi

php - 检查更新查询是否成功[PHP, mysqli]

转载 作者:行者123 更新时间:2023-11-29 17:58:24 26 4
gpt4 key购买 nike

我正在使用 PHP 和 mysqli,该程序正在做的是,如果在它设置密码的数据库中找到电子邮件添加和重置代码,它会要求重置代码和电子邮件地址,这个部分功能正在工作

我需要这部分的帮助:我需要做的是告诉用户是否设置了密码,以及更新是否成功。

我正在做什么:

$uinsert =  "UPDATE member SET password = '$password' WHERE emailadd = '$emailadd' AND resetCode = '$resetcode'";

$update = mysqli_query($mysqli, $uinsert) or die(mysqli_error($mysqli));

if(mysqli_affected_rows($update) == 1 ){ //ifnum
header("location: ../index.php"); // Redirecting To Other Page
}
else{
echo "<script> alert('Incorrect code, try again!');</script>";
}

注意:$mysqli 是我的连接字符串

最佳答案

"@Fred-ii- Thank you so much that works! – Coffee coder 58 secs ago"

使用 if(mysqli_affected_rows($mysqli) >0 ) 或根本不进行比较。

旁注:==1 仅比较 1,而不是与 >0 相比,您可能会尝试更新多行。然而,在极少数情况下,需要 >0 ,而我以前也发生过这种情况;这就是我回答的原因。

affected_rows() 使用连接,而不是查询连接。

此外,如果您要存储纯文本密码,请使用 password_hash(),因为它更安全:

旁注:如果您决定转向该功能,请确保您根本不修改密码。散列/验证它可以解决这个问题,这样做和限制密码可能弊大于利。

即:当使用 real_escape_string() 时,有效密码 test'123 将被解释为 test\'123 并呈现 FALSE示例。

或者您可能仍在按照您的其他问题使用 hash_hmac Comparing/check if correct Password from mysqli database [hash_hmac]

和准备好的声明:

最好在 header 之后添加 exit; 。否则,您的代码可能需要继续执行。

header("location: ../index.php");
exit;

关于php - 检查更新查询是否成功[PHP, mysqli],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48607480/

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