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 相关文章推荐
如何把PHP转成EXE文件
Oct 09 PHP
php 什么是PEAR?(第三篇)
Mar 19 PHP
php在多维数组中根据键名快速查询其父键以及父键值的代码
May 07 PHP
php中将数组存到文件里的实现代码
Jan 19 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
Apr 09 PHP
PHP fopen 读取带中文URL地址的一点见解
Sep 25 PHP
PHP中substr()与explode()函数用法分析
Nov 24 PHP
php mysql获取表字段名称和字段信息的三种方法
Nov 13 PHP
PHP检查网站是否宕机的方法示例
Jul 24 PHP
[原创]PHP实现字节数Byte转换为KB、MB、GB、TB的方法
Aug 31 PHP
redis+php实现微博(二)发布与关注功能详解
Sep 23 PHP
PHP与SQL语句写一句话木马总结
Oct 11 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 错误之引号中使用变量
2009/05/04 PHP
php用户注册时常用的检验函数实例总结
2014/12/22 PHP
必须收藏的php实用代码片段
2016/02/02 PHP
Laravel 5.5官方推荐的Nginx配置学习教程
2017/10/06 PHP
快速保存网页中所有图片的方法
2006/06/23 Javascript
jQuery选择器querySelector的使用指南
2015/01/23 Javascript
js制作简易年历完整实例
2015/01/28 Javascript
javascript实现全角转半角的方法
2016/01/23 Javascript
全面解析Bootstrap中form、navbar的使用方法
2016/05/30 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
2017/01/11 Javascript
JavaScript字符集编码与解码详谈
2017/02/02 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
Vue2.0 slot分发内容与props验证的方法
2017/12/12 Javascript
angular4强制刷新视图的方法
2018/10/09 Javascript
JS中实现一个下载进度条及播放进度条的代码
2019/06/10 Javascript
Vue编程式跳转的实例代码详解
2019/07/10 Javascript
vue+canvas实现拼图小游戏
2020/09/18 Javascript
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
pyv8学习python和javascript变量进行交互
2013/12/04 Python
使用python检测主机存活端口及检查存活主机
2015/10/12 Python
Python实现简单的文本相似度分析操作详解
2018/06/16 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
2018/07/27 Python
Python 中字符串拼接的多种方法
2018/07/30 Python
pandas 空的dataframe 插入列名的示例
2018/10/30 Python
3行Python代码实现图像照片抠图和换底色的方法
2019/10/10 Python
设置jupyter中DataFrame的显示限制方式
2020/04/12 Python
Java Unsafe类实现原理及测试代码
2020/09/15 Python
详解Pycharm第三方库的安装及使用方法
2020/12/29 Python
巴黎一票通:The Paris Pass
2018/02/10 全球购物
指针和引用有什么区别
2013/01/13 面试题
最受欢迎的自我评价
2013/12/22 职场文书
员工表扬信怎么写
2015/05/05 职场文书
百年校庆宣传标语口号
2015/12/26 职场文书
青年岗位能手事迹材料(2016推荐版)
2016/03/01 职场文书
Python的property属性详细讲解
2022/04/11 Python
人工智能深度学习OpenAI baselines的使用方法
2022/05/20 Python