Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menggunakan Parameter dengan Betul dalam Pernyataan SQL LIKE untuk Mencegah Suntikan SQL?

Bagaimanakah Saya Boleh Menggunakan Parameter dengan Betul dalam Pernyataan SQL LIKE untuk Mencegah Suntikan SQL?

Linda Hamilton
Linda Hamiltonasal
2024-12-27 07:38:14197semak imbas

How Can I Correctly Use Parameters in SQL LIKE Statements to Prevent SQL Injection?

Menggunakan Parameter dalam Penyata LIKE untuk SQL

Pernyataan Masalah:

Semasa membuat carian fungsi, pertanyaan menggunakan parameter untuk menghalang serangan suntikan SQL ialah dilaksanakan:

SELECT * FROM compliance_corner WHERE (body LIKE '%@query%') OR (title LIKE '%@query%')

Walau bagaimanapun, pertanyaan ini tidak mengembalikan sebarang hasil.

Jawapan:

Parameter boleh digunakan dengan berkesan dalam pernyataan LIKE untuk mengelakkan serangan suntikan SQL. Walau bagaimanapun, sintaks yang digunakan dalam pertanyaan asal adalah tidak betul.

Sintaks yang Dibetulkan:

Sintaks yang betul untuk menggunakan parameter dengan pernyataan LIKE ialah:

SELECT * FROM compliance_corner WHERE (body LIKE @query) OR (title LIKE @query)

Dalam kes ini, parameter ditakrifkan sebagai "@query" dan nilainya hendaklah ditetapkan menggunakan parameter yang pertanyaan.

Contoh dalam VB.NET:

Dim cmd As New SqlCommand(
"SELECT * FROM compliance_corner" _
+ " WHERE (body LIKE @query )" _
+ " OR (title LIKE @query)")

cmd.Parameters.Add("@query", "%" + searchString + "%")

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan Parameter dengan Betul dalam Pernyataan SQL LIKE untuk Mencegah Suntikan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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