PHP:在php中的函数内返回两个单独的查询不同的结果

时间:2017-02-08 14:44:06

标签: php

我使用两个函数来获得两个不同的查询结果。

我可以使用一个函数获得这两个不同的查询结果吗?

感谢您的帮助  你可以提供。

 public function referralDoctorData($ReferredByIdUser)
{
    try
    {
        $referralDoctorDataQuery = $this->PDOconn->prepare("
            SELECT * FROM tuserlist AS a
            LEFT JOIN tdoctorprofilelist AS b
                ON a.IdUser = b.RefIdUser
            WHERE
                a.IdUser = $ReferredByIdUser
            ");
        $referralDoctorDataQuery->execute();
        $referralDoctorData = $referralDoctorDataQuery->fetch();
        return $referralDoctorData;
    }
    catch(PDOException $e)
    {
        return $e->getMessage();
    }
}

public function invoiceItemList($InvoiceId)
{
    try
    {
        $invoiceItemListQuery = $this->PDOconn->prepare(" SELECT * FROM tlabinvoiceitemdetails WHERE RefInvoiceId='".$InvoiceId."' ");
        $invoiceItemListQuery->execute();
        $invoiceItemList = $invoiceItemListQuery->fetchAll();
        return $invoiceItemList;
    }
    catch(PDOException $e)
    {
        return $e->getMessage();
    }
}

2 个答案:

答案 0 :(得分:0)

你不应该尝试用一个功能做两件事。如果你有两个不同结果的查询,你也应该使用不同的函数,但是如果你只想要一个函数,你应该尝试使用facade类封装你的函数。

但你也应该以正确的方式使用PDO,例如你的第一个声明。

$referralDoctorDataQuery = $this->PDOconn->prepare(
'SELECT * FROM tuserlist AS a
            LEFT JOIN tdoctorprofilelist AS b
                ON a.IdUser = b.RefIdUser
            WHERE
                a.IdUser = :userId'
);
        $referralDoctorDataQuery->execute(array('userId' => $ReferredByIdUser));

答案 1 :(得分:0)

当然,您可以使用一个函数获取这些结果,只需将它们作为数组返回。

  

但正如评论中指出的那样,为什么你甚至想要呢?   它们似乎没有相关性,它使代码更具可读性   如果这两个功能分开。

如果您想要合并这些功能,请尝试如何进行。

public function getReferralDoctorDataAndInvoiceItemList($ReferredByIdUser)
{
    $returnArray = array();
    try
    {
        $referralDoctorDataQuery = $this->PDOconn->prepare("
            SELECT * FROM tuserlist AS a
            LEFT JOIN tdoctorprofilelist AS b
                ON a.IdUser = b.RefIdUser
            WHERE
                a.IdUser = $ReferredByIdUser
            ");
        $referralDoctorDataQuery->execute();
        $referralDoctorData = $referralDoctorDataQuery->fetch();
        $returnArray['referralDoctorData'] = $referralDoctorData;
    }
    catch(PDOException $e)
    {
        return $e->getMessage();
    }

    try
    {
        $invoiceItemListQuery = $this->PDOconn->prepare(" SELECT * FROM tlabinvoiceitemdetails WHERE RefInvoiceId='".$InvoiceId."' ");
        $invoiceItemListQuery->execute();
        $invoiceItemList = $invoiceItemListQuery->fetchAll();
        $returnArray['invoiceItemList'] = $invoiceItemList;
    }
    catch(PDOException $e)
    {
        return $e->getMessage();
    }

    return $returnArray;
}
  

在我的代码中,我没有更正你对PDO的使用(因为我没有   我自己使用PDO)但据我所知,它应该像使用PDO一样   约克特克在答案中提到了。