>  기사  >  php教程  >  Symfony2는 데이터베이스 쿼리 방법 예제 요약에 Doctrine을 사용합니다.

Symfony2는 데이터베이스 쿼리 방법 예제 요약에 Doctrine을 사용합니다.

高洛峰
高洛峰원래의
2016-12-26 11:31:041287검색

이 기사의 예에서는 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 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.