如何将SQL查询传递给PHP中的另一个函数

时间:2012-09-08 15:37:32

标签: php pdo

我之前尝试过这样做,但没有真正得到答案,所以我试着重新考虑它。我无法弄清楚如何将多行查询的结果传递给另一个函数或页面,尤其是使用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();

3 个答案:

答案 0 :(得分:1)

您需要从viewGallery()返回所需的结果,然后在另一页上回显它们。

你可以返回一个结果数组(通过它的外观得到的id),然后在另一页上用while循环显示它们以显示它们

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

return $myBigArray;

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

答案 1 :(得分:1)

假设您的SQL返回col1col2col3

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

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();
}