Intereting Posts
как получить все данные из db между двумя датами в PHP Laravel? изменение значения идентификатора сеанса PHP instanceof для черт как создать имя пользователя: пароль в файле .htpasswd на сервере Wamp, установленном на ОС Windows Ошибки PHP -> Предупреждение: mysqli_stmt :: execute (): Не удалось получить mysqli_stmt | Предупреждение: mysqli_stmt :: close () Активный токен доступа должен использоваться для запроса информации о текущем пользователе Безопасный и не-потоковый сейф для Windows XCache: невозможно запустить в приложении Laravel 5.1 PHP array_search последовательно возвращает первый ключ массива Класс Wrapper Thread для функции с переменными аргументами в PHP Проблема WordPress, вызывающая массивные журналы ошибок С отключенными «магическими кавычками» почему PHP / WordPress продолжает автоматически избегать моих данных POST? Поддерживает ли PHP-класс PHP javascript? Zendframework 2. ID-параметр в SQL-запросе Сортировка файлов по дате создания / изменения в PHP

PDO возвращает результаты в массив

Так что я топчу головой о стену над вопросом, который, скорее всего, имеет простое решение. Вот мой код.

public function login($username, $password){ $sql = "SELECT * FROM users WHERE username = :user AND password = :pass"; $stmt = $this->pdo->prepare($sql); $data = array('user' => $username, 'pass' => md5($password . $this->salt)); $stmt->execute($data); $status = $stmt->fetchColumn(); if($status){ echo "You are Logged in!"; print_r($result); } else { echo $status; $this->error['alert'] = "You have not entered the correct login information."; Users::ErrorReport(); } } 

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

 while($row = $stmt->fetchAll()){ $this->username = $row['username']; } 

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

Используйте fetch() вместо fetchAll()

 while($row = $stmt->fetch(PDO::FETCH_ASSOC)){ $this->username = $row['username']; } 

или, если хотите, вы можете использовать fetchAll() таким образом

 $result_array = $stmt->fetchAll(PDO::FETCH_ASSOC) 

Обновление: Вену прав, немного бесполезно использовать смешанные (числовые и ассоциативные), если вы только собираетесь использовать ассоциативный. Поэтому рекомендуется использовать PDO::FETCH_ASSOC