Rumah > Java > javaTutorial > Bagaimana untuk menggunakan kad liar \'suka\' dengan berkesan dengan pernyataan yang disediakan?

Bagaimana untuk menggunakan kad liar \'suka\' dengan berkesan dengan pernyataan yang disediakan?

Linda Hamilton
Lepaskan: 2024-11-17 14:29:02
asal
824 orang telah melayarinya

How to use the

Menggunakan Kad Liar "suka" dalam Penyata Disediakan

Penyataan yang disediakan menawarkan cara yang berkesan untuk melaksanakan pertanyaan SQL dengan menghalang serangan suntikan SQL dan meningkatkan prestasi . Walau bagaimanapun, penyepaduan kad bebas "suka" dengan pernyataan yang disediakan boleh menjadi agak rumit.

Pertimbangkan pertanyaan berikut yang mencari baris dalam jadual "analisis" berdasarkan kata kunci:

PreparedStatement pstmt = con.prepareStatement(
      "SELECT * FROM analysis WHERE notes like ?");
pstmt.setString(1, notes);
ResultSet rs = pstmt.executeQuery();
Salin selepas log masuk

Untuk menggunakan kad bebas "suka" dengan pertanyaan ini, anda perlu memasukkannya dalam nilai yang terikat pada parameter pernyataan yang disediakan. Hanya menambah "kata kunci%" pada pstmt.setString(1, nota) tidak akan mencukupi.

Sebaliknya, anda boleh melaksanakan awalan, akhiran atau padanan global bergantung pada keperluan anda:

  • Padanan Awalan: Carian padanan awalan untuk baris yang bermula dengan kata kunci. Untuk mencapai ini dengan pertanyaan anda, gunakan kod berikut:
notes = notes
    .replace("!", "!!")
    .replace("%", "!%")
    .replace("_", "!_")
    .replace("[", "![");
PreparedStatement pstmt = con.prepareStatement(
        "SELECT * FROM analysis WHERE notes LIKE ? ESCAPE '!'");
pstmt.setString(1, notes + "%");
Salin selepas log masuk
  • Padanan Akhiran: Carian padanan akhiran untuk baris yang berakhir dengan kata kunci. Untuk melaksanakan ini, ubah suai kod seperti berikut:
pstmt.setString(1, "%" + notes);
Salin selepas log masuk
  • Padanan Global: Carian padanan global untuk baris yang mengandungi kata kunci di mana-mana dalam nilai lajur. Untuk melaksanakan padanan global, gunakan kod berikut:
pstmt.setString(1, "%" + notes + "%");
Salin selepas log masuk

Ingat untuk melepaskan aksara khas dalam rentetan "nota" menggunakan garis miring ke hadapan () untuk mengelakkannya daripada mengganggu kad liar "suka" cari.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan kad liar 'suka' dengan berkesan dengan pernyataan yang disediakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan