Symfony2使用Doctrine进行数据库查询方法实例总结
2019/6/30 16:41:56
本文主要是介绍Symfony2使用Doctrine进行数据库查询方法实例总结,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
本文实例讲述了Symfony2使用Doctrine进行数据库查询方法。分享给大家供大家参考,具体如下:
预定义文中用到的变量:
$em = $this->getDoctrine()->getEntityManager(); $repository = $em->getRepository('AcmeStoreBundle:Product')
1、基本方法
$repository->find($id); $repository->findAll(); $repository->findOneByName('Foo'); $repository->findAllOrderedByName(); $repository->findOneBy(array('name' => 'foo', 'price' => 19.99)); $repository->findBy(array('name' => 'foo'),array('price' => 'ASC'));
2、DQL
$query = $em->createQuery( 'SELECT p FROM AcmeStoreBundle:Product p WHERE p.price > :price ORDER BY p.price ASC' )->setParameter('price', '19.99′); $products = $query->getResult();
注:
(1) 获得一个结果可以用:
$product = $query->getSingleResult();
运用 getSingleResult()方法你需要是用try catch语句将它包起来,来保证只返回一个结果,例子如下:
->setMaxResults(1); try { $product = $query->getSingleResult(); } catch (\Doctrine\Orm\NoResultException $e) { $product = null; }
(2) setParameter('price', '19.99′);运用这个外部方法来设置查询语句中的 “占位符”price 的值,而不是直接将数值写入查询语句中,有利于防止SQL注入攻击,你也可以设置多个参数:
->setParameters(array( 'price' => '19.99′, 'name' => 'Foo', ))
3、 运用Doctrine的查询生成器
$query = $repository->createQueryBuilder('p') ->where('p.price > :price') ->setParameter('price', '19.99′) ->orderBy('p.price', 'ASC') ->getQuery(); $products = $query->getResult();
希望本文所述对大家基于Symfony框架的PHP程序设计有所帮助。
这篇关于Symfony2使用Doctrine进行数据库查询方法实例总结的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享
- 2024-11-01开源 PHP 商城项目 CRMEB 安装和使用教程
- 2024-11-01用php和mysql写无限分类,有哪几种方法-icode9专业技术文章分享
- 2024-10-31php数据分表导出时部分数据无法导出什么原因-icode9专业技术文章分享
- 2024-10-30有经验的 PHP 开发者学习一门新的编程语言,有哪些推荐的有前景的语言-icode9专业技术文章分享
- 2024-10-21php 检测图片是否篡改过-icode9专业技术文章分享