Cara Memeriksa Pertanyaan Parameter dalam PHP dengan PDO
Apabila menggunakan PDO untuk akses pangkalan data dalam PHP, menggunakan pertanyaan berparameter meningkatkan keselamatan dengan melindungi terhadap suntikan SQL. Walau bagaimanapun, ia boleh mencabar untuk mengesahkan pertanyaan sebenar yang dilaksanakan oleh pangkalan data, kerana pertanyaan dengan token dan parameter dihantar secara berasingan.
Pengambilan Terus Tidak Mungkin
Sebagaimana Ben James menjelaskan, tidak ada kaedah langsung untuk mendapatkan pertanyaan SQL lengkap di sebelah PHP. Ini kerana pangkalan data menerima pertanyaan dengan token dan parameter secara bebas, dan pertanyaan sebenar dipasang dalam pangkalan data. Meniru proses penggantian pada bahagian PHP juga tidak boleh dilaksanakan kerana variasi dalam pengendalian token dan teknik mengikat.
Log sebagai Penyelesaian
Untuk memeriksa pertanyaan sebenar yang dilaksanakan pada pangkalan data, penyelesaian melibatkan pengelogan semua pertanyaan SQL. Dalam MySQL, ini boleh dicapai dengan mengubah suai my.cnf (atau my.ini dalam persekitaran Windows) dan menambah baris seperti:
log=[REPLACE_BY_PATH]/[REPLACE_BY_FILE_NAME]
Walau bagaimanapun, ini hanya boleh digunakan untuk tujuan penyahpepijatan dan bukan dalam persekitaran pengeluaran untuk mengelakkan kemerosotan prestasi.
Atas ialah kandungan terperinci ## Bagaimana untuk Memeriksa Pertanyaan Sebenar yang Dilaksanakan oleh PDO dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!