• Как сверить пароли с базой?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Правильный ответ
    // Достанем юзера по мылу
    $sql = 'SELECT * FROM `user` WHERE `email` = ?';
    $result = $db->prepare($sql);
    $result->execute([$email]);
    $user = $result->fetch();
    
    // потом сверим его хеш пароля с паролем из формы
    if ($user && password_verify($_POST['password'], $user['password'])) {
     echo "it's ok";
    }

    Переменная в запросе только одна, поэтому нет смысла устраивать писанину с именованными плейсхолдерами.
    Запрос может не вернуть ни одной строки, и если это не проверить, то будет ошибка.
    Ну и имя поля в таблице вполне себе читается из запроса.

    По поводу остальных вопросов. Есть такая штука, поисковая машина. Она помогает находить ответы на вопросы самостоятельно. Самыми популярными являются google.com и yandex.ru. И это реально работает. Просто попробуй:
    Что дают обратные апострофы в именах таблиц и полей?
    password_hash и PDO
    Ответ написан
    1 комментарий