Menggunakan Kad Liar "suka" dalam Penyata Disediakan
Memahami Isu
Dalam pertanyaan pangkalan data , kad bebas "suka" biasanya digunakan untuk mencari data berdasarkan corak kata kunci. Apabila menggunakan pernyataan yang disediakan untuk meningkatkan keselamatan dan prestasi pertanyaan, mungkin sukar untuk memasukkan kad liar "suka" dengan berkesan.
Penyelesaian Menggunakan PreparedStatement
Untuk menggunakan "suka" " wildcard dalam kenyataan yang disediakan, anda tidak mengubah suai rentetan SQL itu sendiri. Sebaliknya, tetapkan "kata kunci%" dalam nilai yang anda tetapkan dalam penyata. Begini cara melakukannya untuk jenis carian yang berbeza:
Padanan Awalan:
// Replace escape characters to prevent conflict with wildcard notes = notes .replace("!", "!!") .replace("%", "!%") .replace("_", "!_") .replace("[", "!["); PreparedStatement pstmt = con.prepareStatement( "SELECT * FROM analysis WHERE notes LIKE ? ESCAPE '!'"); pstmt.setString(1, notes + "%");
Padanan Akhiran:
pstmt.setString(1, "%" + notes);
Padanan Global:
pstmt.setString(1, "%" + notes + "%");
Dengan menetapkan " keyword%" dalam nilai yang diberikan kepada pernyataan yang disediakan, anda boleh melakukan carian kad bebas dengan cekap tanpa menjejaskan keselamatan atau prestasi pertanyaan.
Atas ialah kandungan terperinci Bagaimana untuk Menggunakan Kad Liar 'Suka' dalam Penyata yang Disediakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!