PDO,MySQL - 如何从函数返回数组?

时间:2012-06-05 17:01:19

标签: php arrays foreach pdo return

我正在使用一个函数从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;

由于

2 个答案:

答案 0 :(得分:1)

您需要使用:

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

}

而不是for循环。我们也非常鼓励您使用{和}来表示循环:)

答案 1 :(得分: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
}