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
Libérer: 2025-01-03 15:25:43
original
341 Les gens l'ont consulté

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();
}
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal