Symfony2使用Doctrine进行数据库查询方法实例总结


Posted in PHP onMarch 18, 2016

本文实例讲述了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程序设计有所帮助。

PHP 相关文章推荐
写一个用户在线显示的程序
Oct 09 PHP
php生成SessionID和图片校验码的思路和实现代码
Mar 10 PHP
php获取文件夹路径内的图片以及分页显示示例
Mar 11 PHP
分享最受欢迎的5款PHP框架
Nov 27 PHP
php生成shtml类用法实例
Dec 09 PHP
双冒号 ::在PHP中的使用情况
Nov 05 PHP
Yii2实现让关联字段支持搜索功能的方法
Aug 10 PHP
PHP的自定义模板引擎
Mar 24 PHP
workerman结合laravel开发在线聊天应用的示例代码
Oct 30 PHP
PHP bin2hex()函数基础实例讲解
Feb 11 PHP
php数组遍历类与用法示例
May 24 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
Oct 24 PHP
Symfony2创建页面实例详解
Mar 18 #PHP
symfony2.4的twig中date用法分析
Mar 18 #PHP
Symfony2之session与cookie用法小结
Mar 18 #PHP
Symfony2实现从数据库获取数据的方法小结
Mar 18 #PHP
Symfony2实现在controller中获取url的方法
Mar 18 #PHP
Symfony2框架学习笔记之表单用法详解
Mar 18 #PHP
Symfony2框架学习笔记之HTTP Cache用法详解
Mar 18 #PHP
You might like
PHP队列用法实例
2014/11/05 PHP
WordPress开发中用于获取近期文章的PHP函数使用解析
2016/01/05 PHP
laravel解决迁移文件一次删除创建字段报错的问题
2019/10/24 PHP
从新浪弄下来的全屏广告代码 与使用说明
2007/03/15 Javascript
JS加ASP二级域名转向的代码
2007/05/17 Javascript
JavaScript 三种不同位置代码的写法
2009/10/25 Javascript
jQuery入门问答 整理的几个常见的初学者问题
2010/02/22 Javascript
js操作ajax返回的json的注意问题!
2010/02/23 Javascript
jQuery EasyUI API 中文文档 - Calendar日历使用
2011/10/19 Javascript
javascrpt绑定事件之匿名函数无法解除绑定问题
2012/12/06 Javascript
同时使用n个window onload加载实例介绍
2013/04/25 Javascript
js取float型小数点后两位数的方法
2014/01/18 Javascript
jQuery内容过滤选择器用法分析
2015/02/10 Javascript
javascript版2048小游戏
2015/03/18 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/09/29 Javascript
BootStrap轻松实现微信页面开发代码分享
2016/10/21 Javascript
javascript 正则表达式分组、断言详解
2017/04/20 Javascript
全面解析vue中的数据双向绑定
2017/05/10 Javascript
vue2.0的contextmenu右键弹出菜单的实例代码
2017/07/24 Javascript
JavaScript实现的贝塞尔曲线算法简单示例
2018/01/30 Javascript
把vue-router和express项目部署到服务器的方法
2018/02/21 Javascript
Vue全局分页组件的实现代码
2018/08/10 Javascript
使用Python简单的实现树莓派的WEB控制
2016/02/18 Python
python 文件操作删除某行的实例
2017/09/04 Python
Python发送邮件的实例代码讲解
2019/10/16 Python
意大利体育用品网上商城:Nencini Sport
2016/08/18 全球购物
露营世界:Camping World
2017/02/02 全球购物
英国领先的鞋类零售商和顶级品牌的官方零售商:Wynsors
2020/02/17 全球购物
创立科技Java面试题
2015/11/29 面试题
生产部管理制度
2014/01/31 职场文书
采购类个人求职的自我评价
2014/02/18 职场文书
横幅标语大全
2014/06/17 职场文书
教师四风对照检查材料思想汇报
2014/09/17 职场文书
售后服务质量承诺书
2015/04/29 职场文书
SpringDataJPA在Entity中常用的注解介绍
2021/12/06 Java/Android
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python