Php 如何修复对布尔函数上的成员函数fetchAll()的调用问题?

Php 如何修复对布尔函数上的成员函数fetchAll()的调用问题?,php,database,Php,Database,我想根据部门选择posts表的所有数据我试图使用此代码,但出现此错误 对成员函数fetchAll on boolean的调用 这是我的密码 <?php if(isset($_GET['dept_n'])) { $de_id = $_GET['dept_n']; $sql = 'SELECT * FROM [posts WHERE dept_id = $de_id'

我想根据部门选择posts表的所有数据我试图使用此代码,但出现此错误 对成员函数fetchAll on boolean的调用 这是我的密码

    <?php
              if(isset($_GET['dept_n']))
              { 
                $de_id = $_GET['dept_n'];

              $sql = 'SELECT * FROM [posts WHERE dept_id = $de_id';
             $result = $connection->query($sql);

              $rows = $result->fetch_all();
              foreach($rows as $row)
              {
                $id = $row[0];
         echo"   <img src='./images/$row[3].jpg' style='width: 90%; height: 200px; '> 
            <h4 >$row[1]</h4>
}}?>

首先,为什么在这里有括号

 $sql = 'SELECT * FROM [posts WHERE dept_id = $de_id';
你不必使用foreach。使用while循环:

while ($row = $result->fetch_assoc()){
     echo $row[“name of column”];
}

欢迎来到stackoverflow。你能告诉我们你尝试了什么吗?你的查询失败了。很可能是因为这里的输入错误:[postsCall到一个成员函数fetchAll-这不在您的代码中。您有一个mysqli_uu函数,而不是PDO。@aynber我也要提到额外的括号,但您先到了:您在代码中的echo后缺少引号。我试着按照您所说的使用,但仍然存在相同的问题