Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan Pertanyaan SQL Mentah Menggunakan Doktrin 2?

Bagaimana untuk Melaksanakan Pertanyaan SQL Mentah Menggunakan Doktrin 2?

Patricia Arquette
Patricia Arquetteasal
2025-01-04 15:58:40348semak imbas

How to Execute Raw SQL Queries Using Doctrine 2?

Melaksanakan SQL Mentah dengan Doktrin 2

Doktrin 2 menyediakan cara yang mudah untuk berinteraksi dengan pangkalan data menggunakan Pemetaan Hubungan Objek (ORM). Walau bagaimanapun, mungkin terdapat situasi di mana anda perlu melaksanakan pertanyaan SQL mentah secara langsung. Artikel ini menunjukkan cara untuk melaksanakan SQL mentah menggunakan Doktrin 2.

Pertimbangkan senario di mana anda ingin memotong jadual pangkalan data dan memulakannya dengan data ujian lalai. Untuk mencapai ini, anda boleh melaksanakan pertanyaan SQL mentah berikut:

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

Dalam Doktrin 2, anda boleh melaksanakan pertanyaan SQL mentah menggunakan langkah berikut:

  1. Dapatkan Entiti Doktrin Pengurus:
$em = $this->getDoctrine()->getManager();
  1. Sediakan SQL pernyataan:
$sql = "TRUNCATE TABLE table_name";
$stmt = $em->getConnection()->prepare($sql);
  1. Laksanakan pernyataan SQL:
$stmt->execute();

Anda juga boleh mendapatkan semula hasil pertanyaan dengan menggunakan kaedah fetchAll() :

$results = $stmt->fetchAll();

Contoh

Coretan kod berikut menggambarkan cara untuk melaksanakan pertanyaan SQL mentah dalam Doktrin 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();
}   

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pertanyaan SQL Mentah Menggunakan Doktrin 2?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn