-1

这应该是一个简单的事情来解决......

当用户登录时,我得到了这些资产:

    $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 ?谢谢!

4

2 回答 2

0

根据文档fetchAll它将返回一个元素数组。这是因为它正在获取表中与您的条件匹配的所有行。在您的情况下,您只能返回位于索引 0 处的一行。如果您知道您只想要一个结果,请使用fetch而不是fetchAll. 它将摆脱 0。

于 2013-06-23T15:38:42.787 回答
0

你正在使用fetchAll. 这将为您提供一个数据库行数组——包含所有匹配的行。

fetch在循环中使用while以逐行浏览各个行。

于 2013-06-23T15:39:22.783 回答