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&&mysql)五
Oct 09 PHP
用PHP和ACCESS写聊天室(四)
Oct 09 PHP
服务器端解压缩zip的脚本
Dec 22 PHP
小文件php+SQLite存储方案
Sep 04 PHP
php 传值赋值与引用赋值的区别
Dec 29 PHP
php遍历数组的方法分享
Mar 22 PHP
PHP实现对文本数据库的常用操作方法实例演示
Jul 04 PHP
基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据
Sep 23 PHP
Yii2中DropDownList简单用法示例
Jul 18 PHP
PHP数组式访问接口ArrayAccess用法分析
Dec 28 PHP
PHP+Ajax实现的博客文章添加类别功能示例
Mar 29 PHP
Laravel使用模型实现like模糊查询的例子
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使用mkdir创建多级目录入门例子
2014/05/10 PHP
PHP实现bitmap位图排序与求交集的方法
2016/07/28 PHP
PHP+iframe图片上传实现即时刷新效果
2016/11/18 PHP
Laravel5.5+ 使用API Resources快速输出自定义JSON方法详解
2020/04/06 PHP
JavaScript 学习笔记(十三)Dom创建表格
2010/01/21 Javascript
利用JS自动打开页面上链接的实现代码
2011/09/25 Javascript
jquery scrollTop方法根据滚动像素显示隐藏顶部导航条
2013/05/27 Javascript
Jquery遍历checkbox获取选中项value值的方法
2014/02/13 Javascript
struts2+jquery组合验证注册用户是否存在
2014/04/30 Javascript
jquery JSON的解析方式示例介绍
2014/07/27 Javascript
jQuery实现带水平滑杆的焦点图动画插件
2016/03/08 Javascript
jQuery事件的绑定、触发、及监听方法简单说明
2016/05/10 Javascript
Javascript中级语法快速入手
2016/07/30 Javascript
获取今天,昨天,本周,上周,本月,上月时间(实例分享)
2017/01/04 Javascript
javascript将list转换成树状结构的实例
2017/09/08 Javascript
Vux+Axios拦截器增加loading的问题及实现方法
2018/11/08 Javascript
vue实现鼠标移入移出事件代码实例
2019/03/27 Javascript
关于微信小程序map组件z-index的层级问题分析
2019/07/09 Javascript
Python Paramiko模块的安装与使用详解
2016/11/18 Python
Python实现将SQLite中的数据直接输出为CVS的方法示例
2017/07/13 Python
Python中property函数用法实例分析
2018/06/04 Python
python 安装移动复制第三方库操作
2020/07/13 Python
Python字典fromkeys()方法使用代码实例
2020/07/20 Python
java关于string最常出现的面试题整理
2021/01/18 Python
手把手教你用Django执行原生SQL的方法
2021/02/18 Python
魔幻般冒泡背景的CSS3按钮动画
2016/02/27 HTML / CSS
世界上最大的冷却器制造商:Igloo Coolers
2019/07/23 全球购物
美国运动鞋类和服装零售连锁店:Shoe Palace
2019/08/13 全球购物
大学生职业规划范文:象牙塔生活的四年计划
2014/01/14 职场文书
理财投资建议书
2014/03/12 职场文书
违反单位工作制度检讨书
2014/10/25 职场文书
无财产离婚协议书范本
2014/10/28 职场文书
世界环境日活动总结
2015/02/11 职场文书
七年级作文之雪景
2019/11/18 职场文书
python调用ffmpeg命令行工具便捷操作视频示例实现过程
2021/11/01 Python
苹果发布了MagSafe固件更新,可以不外接电源实现最高7.5W充电
2022/04/21 数码科技