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类
Jul 15 PHP
Get或Post提交值的非法数据处理
Oct 09 PHP
解决GD中文乱码问题
Feb 14 PHP
PHP+Tidy-完美的XHTML纠错+过滤
Apr 10 PHP
php array_search() 函数使用
Apr 13 PHP
PHP开发负载均衡指南
Jul 17 PHP
PHP学习笔记 用户注册模块用户类以及验证码类
Sep 20 PHP
Windows下安装PHP单元测试环境PHPUnit图文教程
Oct 24 PHP
php搜索文件程序分享
Oct 30 PHP
php str_getcsv把字符串解析为数组的实现方法
Apr 05 PHP
Django 中 cookie的使用
Aug 17 PHP
Laravel等框架模型关联的可用性浅析
Dec 15 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版(3)
2006/10/09 PHP
phpnow php探针环境检测代码
2014/11/04 PHP
php数据访问之增删改查操作
2016/05/09 PHP
微信支付之JSAPI公众号支付详解
2019/05/15 PHP
php设计模式之策略模式应用案例详解
2019/06/17 PHP
javascript html 静态页面传参数
2009/04/10 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
2013/12/16 Javascript
js模拟hashtable的简单实例
2014/03/06 Javascript
javascript实现rgb颜色转换成16进制格式
2015/07/10 Javascript
jQuery实现仿美橙互联两级导航菜单效果完整实例
2015/09/17 Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
2016/10/10 Javascript
Javascript动画效果(1)
2016/10/11 Javascript
Vue CLI 3.x 自动部署项目至服务器的方法
2019/04/02 Javascript
JavaScript自动生成 年月范围 选择功能完整示例【基于jQuery插件】
2019/09/03 jQuery
node实现mock-plugin中间件的方法
2019/12/25 Javascript
javascript 易错知识点实例小结
2020/04/25 Javascript
vue 实现click同时传入事件对象和自定义参数
2021/01/29 Vue.js
[11:27]《一刀刀一天》之DOTA全时刻20:TI4总奖金突破920W TS赛事分析
2014/06/18 DOTA
python读取浮点数和读取文本文件示例
2014/05/06 Python
python中import学习备忘笔记
2017/01/24 Python
Python变量和数据类型详解
2017/02/15 Python
python selenium 对浏览器标签页进行关闭和切换的方法
2018/05/21 Python
python将三维数组展开成二维数组的实现
2019/11/30 Python
python中的itertools的使用详解
2020/01/13 Python
Python获取excel内容及相关操作代码实例
2020/08/10 Python
H5页面适配iPhoneX(就是那么简单)
2019/12/02 HTML / CSS
军校制空专业毕业生自我鉴定
2013/11/16 职场文书
销售工作岗位职责
2013/12/24 职场文书
学校卫生检查制度
2014/02/03 职场文书
党员四风问题对照检查材料
2014/09/27 职场文书
医德医风自我评价2015
2015/03/03 职场文书
政协常委会议主持词
2015/07/03 职场文书
接收函
2019/04/22 职场文书
励志语录:你若不勇敢,谁替你坚强
2019/11/08 职场文书
七年级话题作文之执着
2019/11/19 职场文书
Vue的生命周期一起来看看
2022/02/24 Vue.js