ホームページ  >  記事  >  php教程  >  Symfony2 がデータベースクエリメソッドに Doctrine を使用する例の概要

Symfony2 がデータベースクエリメソッドに Doctrine を使用する例の概要

高洛峰
高洛峰オリジナル
2016-12-26 11:31:041285ブラウズ

この記事の例では、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.

注:

(1) 結果を取得するには、以下を使用できます。

$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();

getSingleResult() メソッドを使用するには、結果が 1 つだけ返されるようにするために、このメソッドを try catch ステートメントでラップする必要があります。

$product = $query->getSingleResult();

(2) setParameter('price', '19.99'); 値を直接記述する代わりに、この外部メソッドを使用して、クエリ ステートメントに「プレースホルダー」価格の値を設定します。 SQL インジェクション攻撃の場合、複数のパラメーターを設定することもできます:

->setMaxResults(1);
try {
$product = $query->getSingleResult();
} catch (\Doctrine\Orm\NoResultException $e) {
$product = null;
}

3. Doctrine のクエリ ジェネレーターを使用します

->setParameters(array(
'price' => '19.99′,
'name' => 'Foo',
))

この記事が皆様の PHP に役立つことを願っています。 Symfony フレームワークに基づいたプログラム設計。

データベースクエリメソッドの例に Doctrine を使用した Symfony2 に関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。