gpt4 book ai didi

PHP MySQL 更新查询不执行

转载 作者:行者123 更新时间:2023-11-29 21:59:20 24 4
gpt4 key购买 nike

当用户请求重置密码时,我的更新查询出现问题。

它只是什么都不做,它确实显示密码已根据警报命令重置,但数据库没有反射(reflect)更新...

任何帮助都会很棒,因为我看不出哪里出了问题......

if(isset($_GET["acc"]) && isset($_GET["np"])){
$acc=decrypt(htmlspecialchars($_GET["acc"]));
$np=decrypt(htmlspecialchars($_GET["np"]));
//var_dump($acc);
//var_dump($np);

$query="UPDATE `master_profile` SET `password`=? where `email_address`=?";
if ($stmt = $connection_link->prepare($query)){
// Bind the variables to the parameter as strings.
$stmt->bind_param("ss",$np,$acc);
// Execute the statement.
if($stmt->execute()){
?>
<script>
alert('Your password has been reset. Please login with your new password.');
</script>
<?
//echo "Updated {$stmt->affected_rows} rows";
}else{
echo '<h1>An Error Has Occoured. Please try again later.</h1>';
}
if ($stmt->errno) {
echo "FAILURE!!! " . $stmt->error;
}
// Close the prepared statement.
$stmt->close();
}
}

更新

按照下面的建议更改了 if($stmt->execute(array($np,$acc))){} 但它只是给了我一个错误发生错误。请稍后再试。,我怎样才能捕捉到这个错误并报告正确的错误?

我尝试过 $stmt->error;$connection_link->error; 但两者都只是给出一个空值。

最佳答案

因为您使用的是匿名占位符,我认为您需要省略绑定(bind)语句。相反,您可以将参数作为数组并按照语句中出现的顺序放置在执行中

if($stmt->execute(array($acc, $np)){}

您可以省略此行

$stmt->bind_param("ss",$np,$acc);

关于PHP MySQL 更新查询不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32811600/

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