0

我之前试过问这个,但没有真正得到答案,所以我会尝试重新表述。我不知道如何将多行查询的结果传递给另一个函数或页面,尤其是使用 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();
4

3 回答 3

1

您需要从 viewGallery() 返回您想要的结果,然后在其他页面上回显它们。

您可以返回一组结果(从外观上看是 id),然后在其他页面上使用 while 循环快速浏览它们以显示它们

while ($get_row = $viewGallery ->fetch()){
    $id = $get_row['id'];
    $myBigArray[] = $id;
}

return $myBigArray;

然后在另一页上循环并回显每个结果

于 2012-09-08T15:42:56.333 回答
1

假设您的 SQL 返回col1,col2col3

您可以执行以下操作来传递结果:

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);
于 2012-09-08T15:43:13.713 回答
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();
}
于 2012-09-09T00:56:00.403 回答