亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將數組傳遞給 where 條件?

如何將數組傳遞給 where 條件?

PHP
HUX布斯 2023-06-18 17:49:39
我有動態的條件。它們由以下數組組成:array:2 [  "brand_name" => array:2 [    0 => "a"    1 => "b"  ]  "category_type" => array:1 [    0 => "AA"  ]]我需要將 where 條件應用于我的查詢。$em = $this->getEntityManager();$sql = " select * from products as p";$i = 0;foreach ($wheres as $key => $value) {    if ($i === 0) {        $sql .= " WHERE";    } else {        $sql .= " AND";    }    $sql.= " te.$key IN (:$key)";    $i +=1;}我不確定如何將值分配給查詢。如果我只有 where 條件,我會這樣做:$params = array(            $ids,        );        $query = $em->getConnection()->executeQuery(            $sql,            $params,            array(                \Doctrine\DBAL\Connection::PARAM_STR_ARRAY,                \PDO::PARAM_INT,            )        );        $records = $query->fetchAll();但我不知道如何修復動態條件的位置。
查看完整描述

1 回答

?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

使用查詢生成器非常容易。它就是為此而設計的。


這樣的事情會帶你去那里:


$qb = $this->createQueryBuilder('p');


$suffix = 0;

foreach ($conditions as $key => $value) {

    $parameter = 'query_' . $suffix++;


    $qb->andWhere("p.$key IN :$parameter")

        ->setParamter($parameter, $value);

}


$records = $qb->getQuery()->getResult()

您需要進行調整以適合您的數據模型。在您的問題中,您正在選擇products as p,但隨后您正試圖從 中進行選擇te,所以我猜拼圖中缺少一些部分。


但是你應該能夠從這里完成它。


查看完整回答
反對 回復 2023-06-18
  • 1 回答
  • 0 關注
  • 140 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號