Mendapatkan Pertanyaan SQL Mentah daripada Penyata Disediakan PDO
Pembangun sering menghadapi keperluan untuk menyahpepijat pertanyaan SQL yang dilaksanakan melalui pernyataan yang disediakan oleh PDO. Walaupun kenyataan yang disediakan menawarkan pelbagai faedah, mendapatkan akses kepada rentetan SQL mentah yang dilaksanakan semasa pelaksanaan boleh menjadi tidak ternilai.
Bolehkah PDO Menyediakan Pertanyaan SQL Mentah?
Malangnya, PDO tidak secara langsung memberikan akses kepada rentetan pertanyaan SQL mentah yang digunakan dalam pernyataan yang disediakan. Penyata yang disediakan dilaksanakan dalam pelayan pangkalan data, dengan parameter dihantar secara berasingan. Oleh itu, PDO tidak mempunyai akses kepada rentetan pertanyaan akhir selepas interpolasi parameter.
Pendekatan Alternatif
Untuk mendapatkan pertanyaan SQL mentah untuk tujuan penyahpepijatan, kaedah alternatif mesti digunakan:
Nota:
Sifat $queryString bagi objek PDOStatement, sementara pada mulanya ditetapkan semasa pembinaan, tidak dikemas kini dengan parameter interpolasi. Mendedahkan pertanyaan yang ditulis semula sebagai penambahbaikan ciri kepada PDO akan bermanfaat, tetapi ia tidak menyelesaikan had dengan pertanyaan yang disediakan benar.
Kesimpulan
Mendapatkan pertanyaan SQL mentah rentetan daripada pernyataan yang disediakan oleh PDO bukanlah proses yang mudah. Pendekatan alternatif, seperti log pertanyaan umum MySQL atau penyataan yang disediakan yang dicontohi, menyediakan penyelesaian untuk tujuan penyahpepijatan. Walaupun keperluan untuk fungsi ini kekal sebagai permintaan yang sah, had yang dikenakan oleh mekanisme pernyataan yang disediakan mesti dipertimbangkan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Dapatkan Kembali Pertanyaan SQL Tepat yang Dilaksanakan oleh Penyata Disediakan PDO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!