經過很多其他人的推薦,我決定從mysql_切換到PDO。我從15分鐘左右開始着眼於PDO,我試圖將這一行代碼轉換爲PDO格式。從mysql_切換到PDO
function verify_user($username, $recover_password) {
return (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username' AND `password_recovery` = '$recover_password'"), 0) == 1) ? true : false;
}
我已經看過幾個教程,並據我可以工作,我可以做實際的查詢與此代碼:
$verify_user = "SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username' AND `password_recovery` = '$recover_password'";
$result = $con->prepare($verify_user);
$result->execute();
我遇到的問題是第二部分代碼行 - mysql_result。現在查詢已經運行,我不知道如何使用PDO返回true或false。我會很感激任何幫助。謝謝!
更新時間:
$result = $con->prepare("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = :username AND `password_recovery` = :recover_password");
$result->bindParam(':username', $username, PDO::PARAM_STR);
$result->bindParam(':password_recovery', $recover_password, PDO::PARAM_STR);
$result->execute();
從讀取頁面,您只要將是:
$result = $con->prepare("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = :username AND `password_recovery` = :recover_password");
$result->bindParam(':username', $username, PDO::PARAM_STR);
$result->bindParam(':password_recovery', $recover_password, PDO::PARAM_STR);
$result->execute();
return ($con->fetch($result) == 1) ? true : false;
我可能英里了,但我很感謝你給我的幫助:)我」我會再做幾次搜索。
您正在使用PDO錯誤。 '$ username'和'$ recover_password'應該是佔位符,** NOT **直接插入到查詢字符串中。至於檢索結果,這裏有一個提示:http://php.net/manual/en/pdostatement.fetch.php –
我認爲這應該是正確的? (編輯主帖) – user2547576
更好的參數。取回錯誤。你正在選擇一個計數,所以你總是會回到1排。您需要獲取該行的數據,然後檢查計數結果。 –