我之前尝试过这样做,但没有真正得到答案,所以我试着重新考虑它。我无法弄清楚如何将多行查询的结果传递给另一个函数或页面,尤其是使用PDO。我会在原始函数中执行循环吗?
public function viewGallery(){
$pQuery = 'SELECT * FROM profiles WHERE userId = ?';
$viewGallery = $this-> _db ->prepare($pQuery);
$viewGallery ->bindParam(1, $id);
$viewGallery ->execute();
while ($get_row = $viewGallery ->fetch()){
$id = $get_row['id'];
}
}
然后是另一个访问它的页面:
//echo the results of viewGallery();
答案 0 :(得分:1)
您需要从viewGallery()返回所需的结果,然后在另一页上回显它们。
你可以返回一个结果数组(通过它的外观得到的id),然后在另一页上用while循环显示它们以显示它们
while ($get_row = $viewGallery ->fetch()){
$id = $get_row['id'];
$myBigArray[] = $id;
}
return $myBigArray;
然后在另一页上循环并回显每个结果
答案 1 :(得分:1)
假设您的SQL返回col1
,col2
和col3
您可以执行以下操作来传递结果:
while ($get_row = $viewGallery ->fetch())
{
$col1 = $get_row['col1'];
$col2 = $get_row['col2'];
$col3 = $get_row['col3'];
someFunctionNameThatEchoesResults($col1, $col2, $col3);
}
您也可以将所有结果放入一个数组中,然后将其传递给另一个函数:
$resArray=array();
while ($get_row = $viewGallery ->fetch())
{
$col1 = $get_row['col1'];
$col2 = $get_row['col2'];
$col3 = $get_row['col3'];
$resArray[]=array($col1, $col2, $col3);
}
someFunctionNameTheShowsResults($resArray);
答案 2 :(得分:0)
我只需使用fetchAll()
如下所示
try {
$dbh = PDO(/* Connection Info */);
$query = "SELECT * FROM foo";
$stmt = $dbh->prepare($query);
$stmt->execute();
return $stmt->fetchAll();
}catch(PDOException $e) {
echo "ERROR: " . $e->getMessage();
}