我正在将 PDO 合并到我的代码中,但我发现很难完成我以前喜欢做的相同任务。我觉得我可能错过了什么。有人可以就以下代码提供一些指导吗?
首先,我将以下函数转换为使用 PDO:
public function fetchBgnew($whr, $limit){
$db = Core::getInstance();
$res = $db->dbh->prepare("SELECT p.id,p.bg,p.bg_desc,p.bg_id,p.user_id, p.pl_id,p.domainurl,p.type,p.price FROM ".USERS_BG." as p left join ".USERS." as u on p.user_id=u.id WHERE u.status !=0 and :whr :limit");
$res->execute(array(':whr'=>$whr,':limit'=>$limit));
$res->fetchAll(PDO::FETCH_ASSOC);
$cnt = $db->dbh->prepare("SELECT p.id FROM ".USERS_BG." as p left join ".USERS." as u on p.user_id=u.id WHERE u.status !=0 and :whr");
$cnt->execute(array(':whr'=>$whr));
$cnt->rowCount();
return $result = array("data"=>$res, "count"=>$cnt);
}
其次,我想调用该函数,但我之前使用的之前的代码采用了一个完整的字符串语句,如下所示:
$bgdataarr = $bgObj->fetchBgnew(" p.pl_id IN (".@implode(',',$barr).") and p.status =1 order by p.id desc", " LIMIT $limit_start,$page_records");
我已经与 PDO 合作了大约 3 天,我的印象是您无法传递要准备的字符串语句,或者至少我不知道如何传递。
1.转换第二个函数调用的正确方法是什么?
2.是否可以将函数转换为能够像以前一样传递我想要的任何参数?