Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Menggunakan Parameter dengan Betul dalam Pernyataan SQL LIKE untuk Mencegah Suntikan SQL?
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!