我正在使用一个函数从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;
由于
答案 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
}