PDO查询结果无法正确进入数组

时间:2017-03-02 06:57:38

标签: php mysql arrays pdo

我正在建立一个使用新技术进行练习的网络论坛,我以前从未使用过这些技术。具体来说,我使用的是PDO而不是mysqli,直到这个最近的挂断,它才是桃子。

我现在要做的最重要的事情是从我的posts表中选择所有行,将其放入关联数组,然后循环遍历每一行以输出数据,以便人们可以选择他们想打开哪个线程。

目前正在发生的事情是我只在阵列中获得一行。我知道这不是我的SQL,因为当我在Web浏览器之外运行它时,它按预期工作,所以我认为这与我如何尝试迭代结果或我如何在返回时存储信息有关变量。这是我的代码......

function get_posts($board){
    include("db_connect.php");
    $sql = "SELECT * FROM posts
                WHERE board = ?
                ORDER BY stickied DESC, date DESC";
    try{
        $sth = $dbh->prepare($sql);
        $sth->bindValue(1, $board, PDO::PARAM_INT);
        $sth->execute();
        $results = $sth->fetchAll(PDO::FETCH_ASSOC);
    } catch (PDOException $e) {
        echo $e->getMessage() . "<br>";
    }
    return $results;
}

以及在我的网页上运行它的代码......

$posts[] = get_posts(1);

// output all of the posts
print_r($posts);

它给我的数据是......

Array ( 
  [0] => Array ( 
      [user_id] => 1 
      [date] => 2017-02-28 16:58:54 
      [post_id] => 1 
      [board] => 1 
      [stickied] => 1 
      [post_text] => Please Ignore 
      [post_title] => Test Post Please Ignore 
    ) 
) 

此表中目前有3个帖子(行)。我知道我所缺少的可能是PDO工作原理的基础,但我无法理解。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

正如@anant和@subwaymatch指出的那样,plt.subplots() id在这件事中是= 1。问题是,我正在尝试检索信息的电路板是#2。

感谢大家的帮助。