Так что я топчу головой о стену над вопросом, который, скорее всего, имеет простое решение. Вот мой код.
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