Penyata Disediakan MySQL dan Nama Lajur Dinamik: Penyelesaian
Penyata yang disediakan JDBC menawarkan kelebihan keselamatan dan prestasi yang ketara. Pertanyaan berparameter mereka menghalang suntikan SQL, tetapi mengendalikan nama lajur berubah memberikan cabaran.
Menggunakan nama lajur berubah-ubah secara langsung dalam pernyataan yang disediakan MySQL, bersama-sama dengan Java, tidak disokong. Pangkalan data menganggap nama ini sebagai rentetan literal, bukan nilai dinamik.
Untuk mengatasi had ini, skema pangkalan data yang disemak adalah disyorkan. Keperluan untuk nama lajur dinamik selalunya menunjukkan model data yang tidak cekap. Mencipta lajur khusus untuk menyimpan nama ini mengekalkan integriti data dan menggalakkan reka bentuk pangkalan data yang lebih baik.
Jika penstrukturan semula pangkalan data tidak praktikal, pembangun boleh menggunakan penyelesaian. Ini melibatkan membina pertanyaan SQL secara manual, membersihkan semua nama lajur yang dibekalkan pengguna dengan teliti untuk mengelakkan kelemahan suntikan SQL. Teknik manipulasi rentetan, seperti String#replace()
, boleh digunakan untuk memetik dan melepaskan aksara khas dalam nama lajur dengan betul. Pendekatan ini memerlukan lebih berhati-hati untuk mengelakkan risiko suntikan SQL.
Atas ialah kandungan terperinci Bolehkah Penyata Disediakan Mengendalikan Nama Lajur Pembolehubah dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!