PHP不是新手,但PDO才刚上手一天。当然我在这里做错了什么。
$query = $conn->prepare("SELECT * FROM admins WHERE username = :username AND password = :password");
$query->execute(array('username' => $username,'password' => sha1($password)));
$result = $query->fetchAll(PDO::FETCH_ASSOC);
if (count($result) > 0)
{
$_SESSION['user']['who'] = $result[0]['who'];
$_SESSION['user']['email'] = $result[0]['email'];
$_SESSION['user']['username'] = $result[0]['username'];
echo REFRESH;
}
else
{
$message = "Invalid username / password.";
}我可以正确声明这些$_SESSIONS的唯一方法是,如果我使用$result[0]['fieldName'];,我如何才能通过$result['fieldName'];访问它?
发布于 2012-12-29 05:25:08
正如文档所述,fetchAll同时检索所有获取数据的数组。由于您使用的是FETCH_ASSOC,因此将获取关联数组的数组。如果您确定只返回一列,或者只对返回的第一列感兴趣,那么只需使用fetch。否则,您必须遍历fetchAll结果或执行已完成的操作。
发布于 2012-12-29 05:23:39
使用:
foreach( $result as $row )
{
$_SESSION['user']['who'] = $row['who'];
.... and so on
}https://stackoverflow.com/questions/14075954
复制相似问题