Heim >php教程 >PHP开发 >Symfony2 verwendet Doctrine für die Beispielzusammenfassung einer Datenbankabfragemethode

Symfony2 verwendet Doctrine für die Beispielzusammenfassung einer Datenbankabfragemethode

高洛峰
高洛峰Original
2016-12-26 11:31:041301Durchsuche

Das Beispiel in diesem Artikel beschreibt, wie Symfony2 Doctrine verwendet, um Datenbankabfragen durchzuführen. Teilen Sie es allen als Referenz mit. Die Details lauten wie folgt:

Im Text verwendete vordefinierte Variablen:

$em = $this->getDoctrine()->getEntityManager();
$repository = $em->getRepository('AcmeStoreBundle:Product')

1. Grundlegende Methode

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

Hinweis:

(1) Um ein Ergebnis zu erhalten, können Sie Folgendes verwenden:

$product = $query->getSingleResult();

Um die getSingleResult()-Methode zu verwenden, müssen Sie umbrechen Es wird garantiert nur ein Ergebnis zurückgegeben:

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

Der „Platzhalter“-Preiswert in der Abfrageanweisung, anstatt den Wert direkt hineinzuschreiben Die Abfrageanweisung ist hilfreich, um SQL-Injection-Angriffe zu verhindern. Sie können auch mehrere Parameter festlegen:

3. Verwenden Sie den Abfrage-Builder von Doctrine 🎜>

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

Ich hoffe, dieser Artikel wird Ihnen bei der Verwendung von PHP auf Basis des Symfony-Frameworks bei der Programmierung helfen.

Weitere Beispiele für Symfony2 mit Doctrine für Datenbankabfragemethoden und zusammenfassende Artikel finden Sie auf der chinesischen PHP-Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn