web-dev-qa-db-ja.com

Symfony2&Doctrine:カスタムSQL-Queryを作成します

Doctrineを使用してSymfony2でカスタムSQLクエリを作成するにはどうすればよいですか?または、Doctrineがなくても構いません。

このように機能しません:

    $em = $this->getDoctrine()->getEntityManager();
    $em->createQuery($sql);
    $em->execute();

ありがとう。

22
a1337q

Entity ManagerからConnectionオブジェクトを直接取得し、それを介してSQLクエリを直接実行できます。

$em = $this->getDoctrine()->getManager(); // ...or getEntityManager() prior to Symfony 2.1
$connection = $em->getConnection();
$statement = $connection->prepare("SELECT something FROM somethingelse WHERE id = :id");
$statement->bindValue('id', 123);
$statement->execute();
$results = $statement->fetchAll();

しかし、本当に必要な場合を除いて、これに反対することをお勧めします... DoctrineのDQLはあなたが必要とするかもしれないほとんどすべてのクエリを処理できます。

公式ドキュメント: https://www.doctrine-project.org/projects/doctrine-dbal/en/2.9/reference/data-retrieval-and-manipulation.html

83
Thomas Kelley