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
Libérer: 2025-01-04 15:58:40
original
369 Les gens l'ont consulté

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

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();
Copier après la connexion
  1. Préparer le SQL instruction :
$sql = "TRUNCATE TABLE table_name";
$stmt = $em->getConnection()->prepare($sql);
Copier après la connexion
  1. Exécuter l'instruction SQL :
$stmt->execute();
Copier après la connexion

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

$results = $stmt->fetchAll();
Copier après la connexion

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

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