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

Bagaimana untuk Melaksanakan Pertanyaan SQL Mentah dalam Doktrin 2?

Linda Hamilton
Linda Hamiltonasal
2025-01-03 15:25:43305semak imbas

How to Execute Raw SQL Queries in Doctrine 2?

Laksanakan Raw SQL menggunakan Doktrin 2

Dalam Doktrin 2, adalah mungkin untuk melaksanakan pertanyaan SQL mentah, terutamanya apabila berurusan dengan tugasan seperti memotong jadual pangkalan data atau memulakannya dengan data ujian. Untuk mencapai matlamat ini, Bahasa Pertanyaan Doktrin (DQL) boleh digunakan untuk membina pertanyaan yang diperlukan.

Melaksanakan Pertanyaan SQL Mentah

Untuk melaksanakan pertanyaan SQL mentah menggunakan Doktrin 2, langkah berikut boleh diikuti:

  1. Dapatkan Objek EntityManager.
  2. Dapatkan sambungan pangkalan data asas daripada EntityManager.
  3. Sediakan pernyataan SQL menggunakan kefungsian pernyataan yang disediakan yang ditawarkan oleh objek PDO.
  4. Laksanakan yang disediakan kenyataan.

Contoh

Pertimbangkan contoh berikut, di mana matlamatnya adalah untuk mendapatkan semula rekod sukan yang berwibawa menggunakan pertanyaan SQL mentah:

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

Dalam contoh ini:

  • Pembolehubah $sql mengandungi pertanyaan SQL mentah untuk dilaksanakan.
  • Kaedah prepare() digunakan untuk mencipta pernyataan yang disediakan, yang disimpan dalam pembolehubah $stmt.
  • Kaedah execute() melaksanakan pernyataan yang disediakan.
  • Kaedah fetchAll() mengembalikan tatasusunan semua baris dalam set hasil.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Pertanyaan SQL Mentah dalam 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