Maison >base de données >tutoriel mysql >Comment exécuter des requêtes SQL brutes dans Doctrine 2 ?

Comment exécuter des requêtes SQL brutes dans Doctrine 2 ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-03 15:25:43305parcourir

How to Execute Raw SQL Queries in Doctrine 2?

Exécuter du SQL brut à l'aide de Doctrine 2

Dans Doctrine 2, il est possible d'exécuter des requêtes SQL brutes, notamment lorsqu'il s'agit de tâches telles que tronquer les tables de la base de données ou les initialiser avec des données de test. Pour y parvenir, le langage de requête Doctrine (DQL) peut être utilisé pour construire les requêtes nécessaires.

Exécuter des requêtes SQL brutes

Pour exécuter une requête SQL brute à l'aide de Doctrine 2, les étapes suivantes peuvent être suivies :

  1. Obtenir l'EntityManager object.
  2. Récupérez la connexion à la base de données sous-jacente à partir d'EntityManager.
  3. Préparez l'instruction SQL à l'aide de la fonctionnalité d'instruction préparée offerte par l'objet PDO.
  4. Exécutez l'instruction préparée.

Exemple

Considérez le exemple suivant, où l'objectif est de récupérer des records sportifs faisant autorité à l'aide d'une requête SQL brute :

public function getAuthoritativeSportsRecords()
{
    $sql = "
        SELECT
            name,
            event_type,
            sport_type,
            level
        FROM
            vnn_sport
    ";

    $em = $this->getDoctrine()->getManager();
    $stmt = $em->getConnection()->prepare($sql);
    $stmt->execute();
    return $stmt->fetchAll();
}

Dans cet exemple :

  • La variable $sql contient la requête SQL brute à être exécuté.
  • La méthode préparer() est utilisée pour créer une instruction préparée, qui est stockée dans la variable $stmt.
  • La méthode exécuter() exécute l'instruction préparée.
  • La méthode fetchAll() renvoie un tableau de toutes les lignes de l'ensemble de résultats.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn