为了账号安全,请及时绑定邮箱和手机立即绑定

为什么此get函数会出现致命错误?

为什么此get函数会出现致命错误?

PHP
慕姐4208626 2021-05-04 16:21:18
我试图根据3个要求选择我的帖子表中的所有行。来自帖子表的用户标识=来自用户表的用户标识来自帖子表的主机ID =来自用户表的用户ID帖子表中的commentid =零我想选择满足这些要求的所有行。这是错误...Fatal error: Uncaught Error: Call to a member function fetch_assoc() on bool in C:\xampp\htdocs\loginsystem\includes\posts.inc.php:108 Stack trace: #0 C:\xampp\htdocs\loginsystem\home.php(38): getUploads(Object(mysqli)) #1 {main} thrown in C:\xampp\htdocs\loginsystem\includes\posts.inc.php on line 108这是我的代码...function getUploads($conn) {        $userName = $_GET["user"];        $sqluserid = "SELECT userid FROM users WHERE userName = $userName";        $userid = mysqli_query($conn, $sqluserid);        $sqlusercontent = "SELECT * FROM posts WHERE hostid = $userid AND userid = $userid AND commentid = 0";        $usercontent = mysqli_query($conn, $sqlusercontent);        $postid = 1;    // This is the actual upload content        while ($row = $usercontent->fetch_assoc()) {            echo "<div class='postbox'><p>";            echo $row['title']."<br>";            echo $row['date']."<br>";            echo "<div><img src='posts/".$userid."/".$postid.".*></div>";            echo $row['description']."<br>";            echo "</p>";            echo "</div>";            $postid++;        }        }
查看完整描述

2 回答

?
小唯快跑啊

TA贡献1863条经验 获得超2个赞

您不是在调用$userid->fetch_assoc()获取第一个查询的结果。您需要执行此操作,然后使用$row['userid']来使用户ID脱离行。


在第一个查询中,您还需要在用户名前后加上引号。最好使用预处理语句和$stmt->bind_param()来防止SQL注入。


但是首先不需要两个查询,您可以连接两个表。


SELECT p.*

FROM posts AS p

JOIN users AS u ON p.userid = u.userid AND p.hostid = u.userid

WHERE u.username = '$userName' AND p.commentid = 0

您应该检查查询的结果,然后将在第一个查询中收到有关语法错误的通知。


$result = mysqli_query($conn, $sql) or die($conn->error);


查看完整回答
反对 回复 2021-05-28
  • 2 回答
  • 0 关注
  • 154 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信