这应该是一个简单的解决方法......
我在用户登录时收到了这些地址:
$query = $conn->prepare("SELECT * FROM admins WHERE username = :user AND password = :pass");
$query->bindValue(":user", $user);
$query->bindValue(":pass", md5($pass));
$query->execute();
现在如果用户存在,我从数据库返回用户信息,但如果没有,我会返回false ...
if($query->rowCount() > 0) {
$admininfo = $query->fetchAll(PDO::FETCH_ASSOC);
} else {
return false;
}
但是当我var_dump变量 $ admininfo 时,我在实际数组之前得到一个带数字键的数组......就像这样:
array (size=1)
0 => <---- I DONT KNOW WHERE THIS COME FROM. I USED PDO::FETCH_ASSOC
array (size=9)
'id' => string '1' (length=1)
'username' => string 'admin' (length=5)
'password' => string '21232f297a57a5a743894a0e4a801fc3' (length=32)
'permissionid' => string '1' (length=1)
'name' => string 'Administrador' (length=13)
'lastname' => string 'Softing' (length=7)
'phonenumber' => null
'cellphonenumber' => null
'info' => null
我会把这些信息放在SESSION数组中,所以我想通过$ _SESSION [“admininfo”] [“username”]或$ _SESSION [“admininfo”] [“phonenumber”]
来访问它但我必须改为这样:$ _SESSION [“admininfo”] [0] [“phonenumber”]。
如何从键中删除0?谢谢!
答案 0 :(得分:0)
根据fetchAll
的{{3}},它将返回一个元素数组。这是因为它使表中的所有行都符合您的条件。在您的情况下,您只返回位于索引0的一行。如果您知道只需要一个结果,请使用fetch
而不是fetchAll
。它将摆脱0。
答案 1 :(得分:0)
您正在使用fetchAll
。这将为您提供一系列数据库行 - 所有匹配的行。
在fetch
循环中使用while
逐个浏览各个行。