我无法让它工作我认为我的错误在于准备好的语句的语法,但我尝试了几种不同的方法,但没有运气。我怀疑错误出现在准备好的语句中的原因是,echo Not a Match
如果变量不匹配,它将出现在页面上,但是当它们匹配时,它只会给我一个没有错误的空白页面。这是我的代码,也许有人可以发现错误,同时我会继续尝试不同的方法。
function setPass($conn, $userCurrent, $oldPass, $newPass, $verPass)
{
$stmt= $conn->prepare('SELECT `password` FROM `CLL_users` WHERE `user_name`=:userCurrent');
$stmt->execute(array(':userCurrent' => $userCurrent));
while ($pass = $stmt->fetch()){
$oldDbPass = $pass['password'];
}
$new_pass = md5($newPass);
if (md5($oldPass) == ($oldDbPass) && ($newPass) == ($verPass)) {
try{
$stmt= $conn->prepare('UPDATE `CLL_users` SET `password`=:newPass WHERE `user_name`=:userCurrent');
$stmt->execute(array(':newpass' => $new_pass, ':userCurrent' => $userCurrent));
} catch (PDOException $e){
echo 'Connection failed: ' . $e->getMessage();
}
echo "Match";
} else {
echo "Not a Match";
}
}