이 기사의 예에서는 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() 메서드를 사용하려면 다음을 래핑해야 합니다. 하나의 결과만 반환하는 것이 보장됩니다.
->setMaxResults(1); try { $product = $query->getSingleResult(); } catch (\Doctrine\Orm\NoResultException $e) { $product = null; }
값을 직접 쓰는 대신 쿼리 문의 "자리 표시자" 가격 값입니다. 쿼리 문은 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를 사용하는 데 도움이 되기를 바랍니다.
Doctrine을 사용한 데이터베이스 쿼리 방법 예제 및 관련 기사를 더 보려면 PHP 중국어 웹사이트를 주목하세요!