我以前试过问这个问题,但没有得到真正的答案,所以我试着重新解释一下。我不知道如何将多行查询的结果传递给另一个函数或页面,尤其是使用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();
您需要从viewGallery()返回您想要的结果,然后在另一个页面上回显它们。
你可以返回一组结果(从外观上看是id),然后在另一个页面上用while循环快速浏览,以显示它们
while ($get_row = $viewGallery ->fetch()){
$id = $get_row['id'];
$myBigArray[] = $id;
}
return $myBigArray;
然后在另一个页面上循环并回显每个结果
假设您的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);
我只需返回带有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();
}