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

Comment exécuter des requêtes SQL brutes à l'aide de Doctrine 2 ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-04 15:58:40297parcourir

How to Execute Raw SQL Queries Using Doctrine 2?

Exécuter du SQL brut avec Doctrine 2

Doctrine 2 fournit un moyen pratique d'interagir avec une base de données à l'aide du mappage relationnel objet (ORM). Cependant, il peut arriver que vous deviez exécuter directement des requêtes SQL brutes. Cet article montre comment exécuter du SQL brut à l'aide de Doctrine 2.

Considérez un scénario dans lequel vous souhaitez tronquer les tables de base de données et les initialiser avec les données de test par défaut. Pour y parvenir, vous pouvez exécuter les requêtes SQL brutes suivantes :

TRUNCATE TABLE table_name;
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);

Dans Doctrine 2, vous pouvez exécuter des requêtes SQL brutes en suivant les étapes suivantes :

  1. Récupérer l'entité Doctrine Manager :
$em = $this->getDoctrine()->getManager();
  1. Préparer le SQL instruction :
$sql = "TRUNCATE TABLE table_name";
$stmt = $em->getConnection()->prepare($sql);
  1. Exécuter l'instruction SQL :
$stmt->execute();

Vous pouvez également récupérer les résultats de la requête en utilisant la méthode fetchAll() :

$results = $stmt->fetchAll();

Exemple

L'extrait de code suivant illustre comment exécuter un raw Requête SQL dans Doctrine 2 :

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

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