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重定向的三种方法分享
Feb 22 PHP
PHP判断表单复选框选中状态完整例子
Jun 24 PHP
VB中的RasEnumConnections函数返回632错误解决方法
Jul 29 PHP
跟我学Laravel之请求与输入
Oct 15 PHP
详谈PHP文件目录基础操作
Nov 11 PHP
PHP生成静态HTML页面最简单方法示例
Apr 09 PHP
PHP使用PDO调用mssql存储过程的方法示例
Oct 07 PHP
Laravel学习教程之request validation的编写
Oct 25 PHP
PHP进阶学习之垃圾回收机制详解
Jun 18 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
Mar 24 PHP
php中yar框架实例用法讲解
Dec 27 PHP
PHP7 参数处理机制修改
Mar 09 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
重量级动漫纷纷停播!唯独OVERLORD第四季正在英魂之刃继续更新
2020/05/06 日漫
php下防止单引号,双引号在接受页面转义的设置方法
2008/09/25 PHP
PHP session文件独占锁引起阻塞问题解决方法
2015/05/12 PHP
帝国CMS留言板回复后发送EMAIL通知客户
2015/07/06 PHP
利用php输出不同的心形图案
2016/04/22 PHP
PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)
2016/09/11 PHP
php输出控制函数和输出函数生成静态页面
2019/06/27 PHP
Javascript Select操作大集合
2009/05/26 Javascript
jquery 将disabled的元素置为enabled的三种方法
2009/07/25 Javascript
js 字符串转换成数字的三种方法
2013/03/23 Javascript
js向上无缝滚动,网站公告效果 具体代码
2013/11/18 Javascript
node.js中的fs.rmdir方法使用说明
2014/12/16 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
2015/12/17 Javascript
基于javascript bootstrap实现生日日期联动选择
2016/04/07 Javascript
基于javascript实现图片滑动效果
2016/05/07 Javascript
Vue.js常用指令汇总(v-if、v-for等)
2016/11/03 Javascript
从零开始学习Node.js系列教程一:http get和post用法分析
2017/04/13 Javascript
JavaScript html5 canvas实现图片上画超链接
2017/10/20 Javascript
详解.vue文件中style标签的几个标识符
2018/07/17 Javascript
koa上传excel文件并解析的实现方法
2018/08/09 Javascript
基于Layui自定义模块的使用方法详解
2019/09/14 Javascript
Python实现获取网站PR及百度权重
2015/01/21 Python
python实现在控制台输入密码不显示的方法
2015/07/02 Python
python 读写、创建 文件的方法(必看)
2016/09/12 Python
Python基于list的append和pop方法实现堆栈与队列功能示例
2017/07/24 Python
Python实现决策树C4.5算法的示例
2018/05/30 Python
Python实现的简单读写csv文件操作示例
2018/07/12 Python
python输入错误后删除的方法
2019/10/12 Python
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子
2019/12/04 Python
Python控制台输出时刷新当前行内容而不是输出新行的实现
2020/02/21 Python
python自动点赞功能的实现思路
2020/02/26 Python
Python解析微信dat文件的方法
2020/11/30 Python
澳大利亚百货公司:David Jones
2018/02/08 全球购物
成人毕业生自我鉴定
2013/10/18 职场文书
动物科学专业毕业生的自我评价
2013/11/29 职场文书
nginx内存池源码解析
2021/11/20 Servers