Не работает авторизация PHP PDO

Суть в том, что есть БД, форма для авторизации, отсылающая к следующему скрипту. Никаким образом собственно эта авторизация не работает, однако вставив несколько var_dump() и count() я понял, что после перевода объекта в массив массив пустой, отсюда получается, что count() возвращает 0. Однако я изменил fetchAll() на fetch(PDO::FETCH_ASSOC) и увидел, что второй var_dump() возвращает булевый false! Далее count() возвращает 1 и при любые значениях формы авторизация как будто проходит.

<?php

require_once('db_connection.php');

if ($_POST['login'] == '' || $_POST['password'] == '')
  header("Location: /authorization.php");
else {
  $sql = "SELECT * FROM users WHERE login = :login AND password = :pass"; //Формируем запрос без данных
  $result = $pdo->prepare($sql);
  $result->bindvalue(':login', $_POST['login']);    //Заполняем данные
  $result->bindvalue(':pass', md5(md5($_POST['password'])));    //Заполняем данные. Знаю, что хэшировать пароли в md5 идея не очень, но этот проект тестовый.
  $result->execute( ); //Выполняем запросы
  var_dump($result);
  $result = $result->fetchAll(); //переводим обьект ПДО в массив данных, для удобной работы
  var_dump($result);
    
  if (count($result)>0) { //Если база вернула 1 значение, значит и логин и пароль совпали. отлично
    echo '<meta charset="UTF-8">Ура! Мы авторизировались!'; 
    $_SESSION['user'] = $result[0]; //сохраняем обьект пользователя в сессии
  } else echo '<meta charset="UTF-8">Логин или пароль не верный или пользователь не существует';

  echo count($result);
}

?>

Ответы (1 шт):

Автор решения: Stepan Berkunov

Смысл был в том, что скрипт регистрации записывал пароль без md5(md5()). В связи с этим сравнение введённого пароля с паролем из базы данных возвращало 0

→ Ссылка