我该如何正确查询?

时间:2017-07-10 17:51:21

标签: php mysql pdo

这是我的代码,我正在使用我的登录系统向某些帐户级别显示某些内容。问题是由于某些原因我的代码无法正常工作。如您所见,我在查询:

SELECT rank FROM members WHERE username='$authUser'

应该通过以下方式获取用户的等级:

$_SESSION['username']

PHP

<?php
include "dbconf.php"; 
include "loginheader.php";
try {
    $conn = new PDO("mysql:host=$host;dbname=$db_name", $username, $password);
    //Trying to set PDO error mode to exception I guess?
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    //No Need to say if we connected successfully. // echo "Connected Successfully!";
    $authUser = $_SESSION['username']; // get logged in user.
    $result = $conn->query("SELECT rank FROM members WHERE username='$authUser'");
    $userrank = $result->fetchAll(PDO::FETCH_OBJ);
}
catch(PDOException $e)
{
    echo "Connection to database has failed: " . $e->getMessage();
}

function ShowRank($user) {
    echo '<font color="green">' . $userrank[1] . '</font>';
}

?>

现在,我遇到麻烦的地方是,当我使用时:

var_dump($userrank);

我得到的是一个如下所示的数组:

 array(1) { [0]=> object(stdClass)#4 (1) { ["rank"]=> string(13) "Administrator" } }

我自然而然地写道:

 echo $userrank[1];

然而,由于某种原因它返回空。输出应该是“管理员”不应该吗?

3 个答案:

答案 0 :(得分:1)

我认为您需要使用

echo $userrank[0]->rank

或者,您可以使用

将结果作为关联数组返回

$userrank = $result->fetchAll(PDO::FETCH_ASSOC);

然后使用

echo $userrank[0]['rank']

答案 1 :(得分:0)

只需你可以像这样访问你的数组

echo $userrank[0]->rank;

答案 2 :(得分:0)

请使用$ userrank [0] - &gt;键  例如:$ userrank [0] - &gt; rank