PHP: PDO, если пользователь существует, проверка не работает - PullRequest
0 голосов
/ 30 июня 2018

Я новичок в PHP, я создал класс / объект User, у которого есть функция, которая проверяет пользователя, он возвращает $stmt->rowCount(), но когда я проверяю его в коде, он просто пропускает его, регистрирует пользователя ..

Вот код:

if(empty($name_err) && empty($email_err) && empty($username_err) && empty($password_err) && empty($confirm_password_err)) {   
            if($user->doesUserExist($email) === 0) {
                    $password = password_hash($password, PASSWORD_DEFAULT);
                    $user->register($username, $name, $email, $password); 
                } else {
                    $global_err = "Email is already taken";
                }
         }

Вот функция из класса User:

public function doesUserExist($email) {
            $query = "SELECT * FROM users WHERE email = :email";
            $stmt = $this->connection->prepare($query);
            $stmt->bindParam(':email', $email);
            $stmt->execute();
            $rowcount = $stmt->rowCount($stmt);
            return $rowcount;

        }

Ответы [ 2 ]

0 голосов
/ 30 июня 2018

Вы должны попробовать

вызов функции

$checkemail=$api->checkuseremail($email);
if($checkemail)
{
    echo $mail_check;
}

и определите свою функцию следующим образом

public function checkuseremail($email)
{
    $db=getDB();
    $stmt = $db->prepare("Select id from table_name where email=:email");
    $stmt->bindParam("email", $email, PDO::PARAM_STR);
    $stmt->execute();
    $count = $stmt->rowCount();
    if($count)
    {
        return true;
    }
    else
    {
        return false;
    }
}

Будет возвращено письмо, уже существует или нет

0 голосов
/ 30 июня 2018

вместо === в вашем состоянии if($user->doesUserExist($email) === 0) попробуйте изменить на == а затем попробуйте изменить свой метод следующим образом:

public function doesUserExist($email) {
            $query = "SELECT * FROM users WHERE email = '" . $email . "';";
            $stmt = $this->connection->prepare($query);
            $stmt->execute();
            $stmt->setFetchMode(PDO::FETCH_ASSOC);
            $rowcount = count($stmt->fetchAll());
            return $rowcount;

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