Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Di PHP dengan PDO, bagaimana cara memeriksa kueri parametris SQL akhir?

Jadi saya pikir saya akhirnya akan menjawab pertanyaan saya sendiri untuk mendapatkan solusi lengkap untuk dicatat. Tetapi harus berterima kasih kepada Ben James dan Kailash Badu yang memberikan petunjuk untuk ini.

Jawaban Singkat
Seperti yang disebutkan oleh Ben James:TIDAK .
Kueri SQL lengkap tidak ada di sisi PHP, karena kueri-dengan-token dan parameter dikirim secara terpisah ke database. Hanya di sisi database, kueri lengkap ada.

Bahkan mencoba membuat fungsi untuk mengganti token di sisi PHP tidak akan menjamin proses penggantian sama dengan yang SQL (hal-hal rumit seperti tipe-token, bindValue vs bindParam, ...)

Solusi
Di sinilah saya menguraikan jawaban Kailash Badu. Dengan mencatat semua kueri SQL, kita dapat melihat apa yang sebenarnya dijalankan di server. Dengan mySQL, ini dapat dilakukan dengan memperbarui my.cnf (atau my.ini di kasus saya dengan server Wamp), dan menambahkan baris seperti:

log=[REPLACE_BY_PATH]/[REPLACE_BY_FILE_NAME]

Jangan jalankan ini dalam produksi!!!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tidak ada koneksi yang dapat dibuat karena mesin target secara aktif menolaknya (PHP / WAMP)

  2. Tidak dapat terhubung ke server MySQL kesalahan 111

  3. Hapus cache kueri MySQL tanpa memulai ulang server

  4. MySQL TEXT vs BLOB vs CLOB

  5. Bagaimana cara mengubah semua tabel dari MyISAM menjadi InnoDB?