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

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

高洛峰
リリース: 2016-12-26 11:31:04
オリジナル
1305 人が閲覧しました

この記事の例では、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 サイトに注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート