【发布时间】:2015-05-21 03:42:07
【问题描述】:
所以我在 php 中有点新,当我收到以下错误时,我试图这样做: 致命错误:在第 44 行的 .../index.php 中调用非对象的成员函数 fetch_assoc()
我的代码:
if ($_SESSION['uid']){
$uid = $_SESSION['uid'];
$result = $db->query("SELECT id,username FROM users WHERE id= '".$uid."'");
if ($result->num_rows){
session_destroy();
echo "please <a href=\"login.php\">Login<a> to your account, or <a href=\"register.php\">Register<a> a new account! \n";
}else{
$row = $result->fetch_assoc();
echo "Welcome back, <a href=\"index.php?act=profile&id=" .$row['id']."\">".$row['username']."</a> !\n";
}
}
else {
echo "please <a href=\"login.php\">Login<a> to your account, or <a href=\"register.php\">Register<a> a new account! \n";
}
这是我的第 44 行:
$row = $result->fetch_assoc();
我不明白我做错了什么!
【问题讨论】:
-
查询无结果,尝试打印查询并手动执行
-
您开始会话了吗?并且您正在使用
mysqli_进行连接,对吧? -
另外,您的查询可能是成功的,然后您销毁了会话,这就是您的代码翻译的内容。您是在告诉它“如果查询很好并且 num_rows 找到了一行,则销毁会话;为什么?您的
else{...}失败了,因为您将事情设置后退;有点令人困惑. -
if ($result->num_rows){ $row = $result->fetch_assoc();... } else{ session_destroy(); echo "please...}