好更新數據錯誤,我用PHP與PDO擴展作爲數據庫驅動程序工作周圍。在PHP PDO
我正在那裏的東西是相當弄亂了我一個「更改密碼」情景:(
我們(有些#1助手,獎勵!)設法驗證當前密碼的密碼,但它不更新的數據,因爲我認爲
這裏是相遇場景:
喲你正在改變你的密碼從quora到stackoverflow。我們知道,如果你更改了密碼,則無法使用舊密碼,但在我的情況,你可以使用舊的密碼,但不是新的,使得新已廢棄。
這裏是我的代碼片段一:
所有的
$option = ['cost' => 12];
$password = password_hash($_currentpassword, PASSWORD_BCRYPT, $option);
$selectpasswordsql = "SELECT `password` FROM `auth` WHERE username=?";
$selectpasswordstmt = $conn->prepare($selectpasswordsql);
$selectpasswordstmt->execute(array($_SESSION['account']['username']));
$selectpasswordresults = $selectpasswordstmt->fetch(PDO::FETCH_ASSOC);
$databasepass = $selectpasswordresults['password'];
if(password_verify($_currentpassword,$databasepass)){
if(empty($passmsgs)){
$updatepasssql = "UPDATE `auth` SET
`password`=?
WHERE username=?
";
$updatepassstmt = $conn->prepare($updatepasssql);
$updatepassstmt->execute(array(password_hash($password, $_SESSION['account']['username']));
if($updatepassstmt){
array_push($passmsgs, 'Successfully updating your password!');
} else {
array_push($passmsgs, 'There was a problem executing your command!');
}
}
} else {
array_push($passmsgs, 'Your current password is wrong!');
}
我無法在這裏看到的問題。 –
你有兩個'?'-placeholders,但只有一個通過'execute' –
傳遞價值@u_mulder它也將失敗'執行(陣列(password_hash($密碼,$ _SESSION [ '賬戶'] [ '用戶名']) '不能按引用傳遞,*等* ... –