не может правильно связать параметр в сценарии mysql - PullRequest
0 голосов
/ 06 января 2012

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

Проблема в том, что это другой способ взглянуть на него, и я к нему еще не привык, и у меня все еще есть некоторые вещи, которые мне не понятны.

Так что мой скрипт пытается привязать три параметра к запросу, чтобы позволить пользователю войти на мой сайт. Я использую тот же скрипт, что и раньше, это имя пользователя и пароль ... Это прекрасно работает:

$query = "SELECT *
            FROM user
            WHERE email = ? AND password = ?
            LIMIT 1";

    if($stmt = $this->conn->prepare($query)) 
    {
        $stmt->bind_param('ss', $un, $pwd);
        $stmt->execute();

        if($stmt->fetch()) 
        {
            //$uid = $stmt->fetch(id);
            //$_SESSION['uid'] = $uid;
            $stmt->close();
            return true;
        }
    }

но когда я проверяю, является ли пользователь администратором, мне это совсем не нравится:

$query = "SELECT *
            FROM user
            WHERE email = ? AND password = ? AND isAdmin = ?
            LIMIT 1";

    if($stmt = $this->conn->prepare($query)) 
    {
        $stmt->bind_param('ssi', $un, $pwd, $isAdmin);
        $stmt->execute();

        if($stmt->fetch()) 
        {
            //$uid = $stmt->fetch(id);
            //$_SESSION['uid'] = $uid;
            $stmt->close();
            return true;
        }
    }

Также я объявляю isAdmin как глобальную приватную переменную в начале класса следующим образом:

private $isAdmin = "1";

Так что да, я знаю, что у пользователя, которого я тестирую, есть 1 для isActive в базе данных, но когда он входит в этот скрипт, он возвращает false.

Как я уже говорил, я новичок в этом стиле написания запросов, поэтому любая помощь будет потрясающей.

Спасибо за время.

1 Ответ

0 голосов
/ 06 января 2012

Хорошо, так что я думаю, что понял.Я добавил переменную isActive к функции, которая его использует, вместо того, чтобы быть глобальной, теперь она работает нормально.Любые другие советы по этому вопросу будут приветствоваться!

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