Rumah  >  Artikel  >  pangkalan data  >  Bagaimanakah Saya Boleh Melihat Pertanyaan SQL \"Sebenar\" dalam Doktrin Apabila Ia Menggunakan Pernyataan yang Disediakan?

Bagaimanakah Saya Boleh Melihat Pertanyaan SQL \"Sebenar\" dalam Doktrin Apabila Ia Menggunakan Pernyataan yang Disediakan?

DDD
DDDasal
2024-10-31 03:49:30984semak imbas

How Can I See the

Meneroka SQL Tersembunyi dengan Doktrin: Mendedahkan Rahsia Pernyataan yang Disediakan

Andaikan anda sedang bekerja dengan Doktrin dan telah membuat pertanyaan seperti ini dengan teliti:

$q = Doctrine_Query::create()->select('id')->from('MyTable');

Sekarang, sambil anda memperhalusi pertanyaan anda dengan syarat, seperti:

$q->where('normalisedname = ? OR name = ?', array($string, $originalString));

Anda tidak sabar-sabar untuk memeriksa SQL mentah sebelum pelaksanaan. Jadi, anda hubungi:

$q->getSQLQuery();

Tetapi malangnya, ia bukan seperti yang anda harapkan - ia adalah pernyataan yang disediakan dengan tanda tanya. Anda ingin melihat apa yang akan dihantar ke pangkalan data.

Nah, inilah kebenarannya: Doktrin tidak menghantar SQL "sebenar" ke pelayan pangkalan data. Ia menggunakan pernyataan yang disediakan, proses tiga langkah:

  • Menghantar pernyataan yang disediakan untuk penyediaan
  • Meluluskan parameter secara berasingan
  • Melaksanakan pernyataan yang disediakan

Ini bermakna tidak pernah ada pertanyaan SQL "sebenar" di sisi PHP - jadi, Doktrin tidak dapat memaparkannya.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melihat Pertanyaan SQL \"Sebenar\" dalam Doktrin Apabila Ia Menggunakan Pernyataan yang Disediakan?. 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