PDO查询关联表并显示结果

时间:2017-12-10 19:39:07

标签: php mysql mysqli pdo

我是PHP的新手,目前正在学习PDO并远离MySQLi,我是CMS的大学生,我正在学习老师要我将两张桌子联系起来并展示它们的课程,他的MySQLi代码看起来像这样

$query = "SELECT * FROM categories WHERE cat_id = {$post_category_id}";
$select_categories_id = mysqli_query($connection,$query);

while($row = mysqli_fetch_assoc($select_categories_id)) {
    $cat_id = $row['cat_id'];
    $cat_title = $row['cat_title'];
    echo "<td>{$cat_title}</td>";
}

我的PDO代码看起来像是这样,但它不能正常工作......

我之前在我的课程中已经完成了几个PDO查询,但不知怎的,这不起作用。

$query = "SELECT * FROM categories WHERE cat_id = :post_category_id";
$result = $connection->prepare($query);
$result->execute(array(":post_category_id"=>$post_category_id));
while($row=$result->fetch(PDO::FETCH_ASSOC)){
    extract($row);
    $cat_id = $row['cat_id'];
    $cat_title = $row['cat_title'];
    echo "<td>$cat_title</td>";
}

我会很感激任何和所有的建议

2 个答案:

答案 0 :(得分:0)

如果你设置正确的连接数据库。它工作正常

  $query = "SELECT * FROM categories WHERE cat_id = :post_category_id";
  $result = $connection->prepare($query);
  $result->bindParam(':post_category_id',$post_category_id, PDO::PARAM_INT);
  $result->execute();
  $result = $result->fetchAll(PDO::FETCH_ASSOC);
      if ($result) {
         foreach($result as $row){
            $cat_id = $row['cat_id'];
            $cat_title = $row['cat_title'];
            echo "<td>".$cat_title."</td>";
          }
       }

答案 1 :(得分:0)

我想感谢你们抽出时间发布答案,我问我的兄弟帮忙,他告诉我做var_dump之后想通了,显然我忘了在我的数据库中的post_category_id中添加一个数字,这是为什么没有出现。

无论如何,问题现在已经解决了:)