我使用两个函数来获得两个不同的查询结果。
我可以使用一个函数获得这两个不同的查询结果吗?
感谢您的帮助 你可以提供。
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();
}
}
答案 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一样 约克特克在答案中提到了。