2
작동하는데 문제가 있습니다. 내 오류가 준비된 구문의 구문에 있다고 생각하지만 여러 가지 방법을 사용해 보았습니다. 그 오류가 준비된 성명서에 의심되는 이유는 변수가 일치하지 않는 경우 페이지에서 echo Not a Match
이 될 것이기 때문입니다.하지만 일치 할 때 오류가없는 빈 페이지 만 제공합니다. 여기에 내 코드가 있습니다. 누군가 다른 방법을 시도해봤을 때 오류를 발견 할 수 있습니다.PDO 준비 함수 문제
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";
}
}
방금 추천 한 것과 같은 결과를 얻었습니다. – Yamaha32088
Ok 오류 처리를 활성화하고이 메시지가 표시됩니다. 연결 실패 : SQLSTATE [HY093] : 잘못된 매개 변수 번호 : 매개 변수가 정의되지 않았습니다. ' – Yamaha32088
귀하의 제안에 따라 코드를 작성하고 변경 사항을 반영하도록 제 질문을 편집했습니다. – Yamaha32088