1

我正在使用一个函数从 mysql 数据库中检索多行。我使用 foreach 循环遍历每场比赛。我希望能够将每一行的 id 添加到数组中,并将数组返回给调用程序,然后使用 id。

这是我试图得到的,我是否朝着正确的方向前进?

$resultarray = array();
    $resultarray[] = get_post_data($post_id);

    print_r($resultarray);

函数中的代码:

$stmt = $dbh->prepare("SELECT * FROM mjbox_images JOIN mjbox_posts USING (post_id) WHERE post_id = ?");
        $stmt->bindParam(1,$post_id);
        $stmt->execute();

        $resultarray = array();
        foreach($stmt as $row):


                $resultarray[] = $img_id = $row['img_id'];


        endforeach;
        return $resultarray;

谢谢

4

2 回答 2

1

你需要使用:

while($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {

}

而不是 for 循环。还强烈建议您将 { 和 } 用于循环之类的东西:)

于 2012-06-05T17:04:39.907 回答
1

如果你只需要这个img_id领域,你为什么要跑步select *

$stmt = $dbh->prepare("SELECT img_id FROM mjbox_images JOIN mjbox_posts USING (post_id) WHERE post_id = ?");
$stmt->bindParam(1,$post_id);
$stmt->execute();

return $stmt->fetchAll();

或者,您可以手动遍历结果(以验证/更改返回数组语法):

while($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    //code
}
于 2012-06-05T17:09:13.467 回答