Symfony2使用Doctrine进行数据库查询方法实例总结
程序员文章站
2024-04-01 21:48:52
本文实例讲述了symfony2使用doctrine进行数据库查询方法。分享给大家供大家参考,具体如下:
预定义文中用到的变量:
$em = $this->...
本文实例讲述了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程序设计有所帮助。
推荐阅读
-
Symfony2使用Doctrine进行数据库查询方法实例总结
-
Symfony2使用Doctrine进行数据库查询方法实例总结,symfony2doctrine
-
Symfony2使用Doctrine进行数据库查询方法实例总结
-
Symfony2使用Doctrine进行数据库查询方法实例总结
-
Symfony2使用Doctrine进行数据库查询方法实例总结_PHP
-
Symfony2使用Doctrine进行数据库查询方法实例总结_PHP
-
Symfony2使用Doctrine进行数据库查询方法实例总结_php实例
-
Symfony2使用Doctrine进行数据库查询方法实例总结
-
Symfony2使用Doctrine进行数据库查询方法实例总结,symfony2doctrine_PHP教程
-
Symfony2使用Doctrine进行数据库查询方法实例总结,symfony2doctrine