Недавно я начал использовать PDO несколько дней назад, и я меняю весь свой код mysqli, но, похоже, я столкнулся с кирпичной стеной. Теперь этот код работал красиво, когда я использовал mysqli, но теперь я не могу распечатать результат. Этот код в основном принимает входное значение пароля, а пароль хеширования в базе данных соответствует им, и если оба они равны, то пользователь будет зарегистрирован. Моя проблема заключается в том, что я не могу найти способ получить пароль из моей базы данных. Любая помощь приветствуется. Спасибо.Mysqli to PDO conversion
<?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 = новый PDO ('MySQL: хост = локальный; имя_бд = rabbit_users', $ пользователь, $ шунтирования);' дважды. –
Так что я должен поддерживать только строку Connection только в инструкции try. Еще раз спасибо за вашу помощь! –
, если пароль в базе данных хэширован ... его не будет соответствовать паролю из сообщения в инструкции WHERE ... если сообщение также не хэшируется? – Soujirou