这是我的代码,我正在使用我的登录系统向某些帐户级别显示某些内容。问题是由于某些原因我的代码无法正常工作。如您所见,我在查询:
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];
然而,由于某种原因它返回空。输出应该是“管理员”不应该吗?
答案 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