Что означает $ row в подготовленных выражениях (MySQLi)? - PullRequest
0 голосов
/ 26 июня 2019

Я смотрю руководство по входу в систему на Youtube и воссоздаю его. Все готово, но каждый раз, когда я пытаюсь войти, выдает ошибку:

"Неверный пароль"

Я подозреваю, что это связано с $ строкой , которая была сделана в операторе if. Но я не знаю, что делает $ row .

Я оставлю код, если кто-нибудь увидит проблему.

   <?php
    else {
    $sql = "SELECT * FROM users WHERE uidUsers=? OR emailUsers=?;";
    $stmt = mysqli_stmt_init($conn);
    if (!mysqli_stmt_prepare($stmt, $sql)) {
        header("Location: ../index.php?error=sqlerror");
        exit();
    }
    else{
        mysqli_stmt_bind_param($stmt, "ss", $mailuid, $mailuid);
        mysqli_stmt_execute($stmt);
        $result = mysqli_stmt_get_result($stmt);
        if ($row = mysqli_fetch_assoc($result)) {
            $pwdCheck = password_verify($password, $row['pwdUsers']);
            if ($pwdCheck == false) {
                header("Location: ../index.php?error=wrongpwd");
                exit();
            }
            elseif ($pwdCheck == true) {
                session_start();
                $_SESSION['userId'] = $row['idUsers'];
                $_SESSION['userUid'] = $row['uidUsers'];

                header("Location: ../index.php?login=succes");
                exit();
            } ?>

1 Ответ

0 голосов
/ 26 июня 2019

if ($ row = mysqli_fetch_assoc ($ result))

Это пытается извлечь строку из результата запроса. Если есть строка для выборки из результатов, то эта строка присваивается переменной $ row и выполняется оператор if . Если нет строки для извлечения результатов, то оператор if возвращает false и пропускается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...