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


How do you pass a sql query to another function in PHP

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

我只需返回带有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();
}