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 相关文章推荐
PHP6 mysql连接方式说明
Feb 09 PHP
php文件上传表单摘自drupal的代码
Feb 15 PHP
php数组函数序列之array_keys() - 获取数组键名
Oct 30 PHP
VIM中设置php自动缩进为4个空格的方法详解
Jun 14 PHP
php中创建和调用webservice接口示例
Jul 25 PHP
php创建、获取cookie及基础要点分析
Jan 26 PHP
PHP版微信公众平台红包API
Apr 02 PHP
Smarty简单生成表单元素的方法示例
May 23 PHP
PHP仿微信多图片预览上传实例代码
Sep 13 PHP
php获取linux命令结果的实例
Mar 13 PHP
Yii2.0框架模型多表关联查询示例
Jul 18 PHP
PHP使用JpGraph绘制折线图操作示例【附源码下载】
Oct 18 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.MVC的模板标签系统(二)
2006/09/05 PHP
自动生成文章摘要的代码[PHP 版本]
2007/03/20 PHP
用php简单实现加减乘除计算器
2014/01/06 PHP
JavaScript入门教程(5) js Screen屏幕对象
2009/01/31 Javascript
JavaScript函数参数使用带参数名的方式赋值传入的方法
2015/03/19 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
2015/09/06 Javascript
简单总结JavaScript中的String字符串类型
2016/05/26 Javascript
微信小程序 连续旋转动画(this.animation.rotate)详解
2017/04/07 Javascript
js使用i18n实现页面国际化的方法
2017/05/09 Javascript
jQuery实现的form转json经典示例
2017/10/10 jQuery
JS事件流与事件处理程序实例分析
2019/08/16 Javascript
wx-charts 微信小程序图表插件的具体使用
2019/08/18 Javascript
返回上一个url并刷新界面的js代码
2020/09/12 Javascript
vant 解决tab切换插件标题样式自定义的问题
2020/11/13 Javascript
Windows下Python的Django框架环境部署及应用编写入门
2016/03/10 Python
实例讲解Python中SocketServer模块处理网络请求的用法
2016/06/28 Python
Windows安装Python、pip、easy_install的方法
2017/03/05 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
2017/08/21 Python
numpy返回array中元素的index方法
2018/06/27 Python
Python类装饰器实现方法详解
2018/12/21 Python
在python中用url_for构造URL的方法
2019/07/25 Python
python GUI库图形界面开发之PyQt5拖放控件实例详解
2020/02/25 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
2021/01/19 Python
使用CSS3编写灰阶滤镜来制作黑白照片效果的方法
2016/05/09 HTML / CSS
微软俄罗斯官方网站:Microsoft俄罗斯
2016/09/18 全球购物
Expedia爱尔兰:酒店、机票、租车及廉价假期
2017/01/02 全球购物
管理心得体会
2013/12/28 职场文书
大学生活自我评价
2014/04/09 职场文书
小学先进集体事迹材料
2014/05/31 职场文书
公共场所禁烟标语
2014/06/25 职场文书
小学家长学校培训材料
2014/08/24 职场文书
工作经验交流材料
2014/12/30 职场文书
2015年乡镇残联工作总结
2015/05/13 职场文书
2015年大学宣传部工作总结
2015/05/26 职场文书
致创业您:正能量激励人心句子(48条)
2019/08/15 职场文书
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
2021/04/01 PHP