所以我在一个很可能有一个简单解决方案的问题上抨击我的头。这是我的代码。
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'];
}
当我这样做的问题是我遇到了一百万个讨厌的错误,并且在搜索网络时无法找到任何解决方案。
答案 0 :(得分:3)
使用fetch()
代替fetchAll()
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
$this->username = $row['username'];
}
或者如果您愿意,可以这样使用fetchAll()
$result_array = $stmt->fetchAll(PDO::FETCH_ASSOC)
更新:Venu是对的,如果你只使用关联的话,使用混合(数字和关联)会有点浪费。所以使用PDO::FETCH_ASSOC