美工统筹SEO,为企业电子商务营销助力!
Symfony查问体例实例小结
一佰互联网站建造(www.taishanly.com) 宣布日期 2020-04-25 14:41:31 阅读数: 127
本文实例报告了Symfony查问体例。分享给大师供大师参考,详细以下:
1. createQuery的写法
$sql = "SELECT COUNT(DISTINCT(g.goodsId)) FROM AppBundle:GoodsIndex g WHERE g.status = :status"; $params = array( "status" => GoodsIndex::STATUS_NORMAL, ); if (!empty($keywords)) { $params["keywords"] = "%{$keywords}%"; $sql .= " AND g.keywords like :keywords "; } if (!empty($warehouseIdList)) { $params["warehouseIdList"] = $warehouseIdList; $sql .= " AND g.warehouseId IN :(warehouseIdList)"; } $goodsNum = $this->entityManager->createQuery($sql)->setParameters($params)->getSingleScalarResult();
小我总结::是指占位符的意义,避免sql注入。以是把一切须要的参数做成数组$params外面。
2. getQuery的写法
$orderBy = "p.".$searchOptions["orderBy"]; $repository = $this->entityManager ->getRepository("AppBundle:GoodsIndex"); $query = $repository->createQueryBuilder("p"); $query->select("DISTINCT(p.goodsId)"); $query->where("p.keywords like :keywords") ->setParameter("keywords", "%{$searchOptions["keywords"]}%") ->andwhere("p.status = :status") ->setParameter("status", GoodsIndex::STATUS_NORMAL) ->orderBy($orderBy, $searchOptions["order"]) ->setFirstResult($pagination["pageSize"] * ($pagination["page"] - 1)) ->setMaxResults($pagination["pageSize"]); if (!empty($searchOptions["warehouseIdList"])) { $query->andWhere($query->expr()->in("p.warehouseId", $searchOptions["warehouseIdList"])); } $goodsIndexList = $query->getQuery()->getResult();
更多对于Symfony相干内容感乐趣的读者可检查本站专题:《Symfony框架入门教程》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《php优异开辟框架总结》、《ThinkPHP入门教程》、《ThinkPHP经常利用体例总结》、《Zend FrameWork框架入门教程》、《php面向东西法式设想入门教程》、《php+mysql数据库操纵入门教程》及《php罕见数据库操纵技能汇总》
但愿本文所述对大师基于Symfony2框架的PHP法式设想有所赞助。