我最近開始使用PDO幾天前,我正在改變我所有的mysqli代碼,但我似乎碰到了一堵磚牆。現在,當我使用mysqli時,此代碼運行得非常好,但現在我似乎無法打印出結果。這段代碼基本上把密碼的輸入值和數據庫中密碼的輸入值匹配起來,如果兩者相等,那麼用戶將會登錄。我的問題是,我似乎無法找到一種方法來獲取來自我的數據庫的密碼。任何幫助將非常感激。謝謝。Mysqli到PDO轉換
<?php
session_start();
$user = "root";
$pass = "";
$mcon = new PDO('mysql:host=localhost;dbname=rabbit_users', $user, $pass);
try {
$mcon = new PDO('mysql:host=localhost;dbname=rabbit_users', $user, $pass);
$mcon->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e) {
echo 'ERROR: ' . $e->getMessage();
//prepare statement
$password = $_POST['password'];
$stmt = $mcon->prepare("SELECT `password` FROM members WHERE password=:password");
$stmt->bindParam(":password", $_POST['password']);
$stmt->execute();
//get_result
$data_array = $stmt->fetchAll();
$stmt->fetch(PDO::FETCH_ASSOC);
//echo passwords
print 'Password from form: ' . $password . '<br />';
print 'Password from DB: ' . $data_array['password'] . '<br />';
//verify password
if (password_verify($password, $data_array['password'])) {
print 'success';
exit();
}else{
print 'Try again m9';
exit();
}
你不需要'$ mcon = new PDO('mysql:host = localhost; dbname = rabbit_users',$ user,$ pass);'兩次。 –
所以我應該只保留在try語句中的Connection行。再次感謝您的幫助! –
如果數據庫中的密碼被哈希......它不會匹配該WHERE語句中帖子的密碼......除非帖子被哈希了嗎? – Soujirou