我在我的網頁上創建了一個搜索工具欄,以允許用戶識別要搜索的列以及用於搜索該列的操作符。爲了避免大量的if語句,我想寫出這樣的SQL的:如何在SQL查詢中使用存儲等號的變量
if ($operator == "LIKE") {
sql = "SELECT * FROM `mytable` WHERE `$column` '$operator' '%$search%'";
} else {
sql = "SELECT * FROM `mytable` WHERE `$column` '$operator' '$search'";
}
這工作正常,如果操作就好了,但是當它是=,這是行不通的。我檢查了發佈到頁面的數組,並確認數組發佈正確。如果操作員是「=」,我該怎麼做這項工作?這裏是數組:
Array
(
[column] => first_name
[operator] => =
[search] => paul
[page_rows] => 10
)
SQL不會在運算符周圍使用引號;但如果它是來自用戶輸入的數據,將其列入白名單 – 2014-09-03 15:46:09
即使您沒有調試工具,簡單的調試也能解決您的問題,在運行之前打印查詢文本,查看它,您可能會用變量周圍的'''看看問題 – simsim 2014-09-03 15:53:27
@simsim你有推薦的特定調試工具嗎? – user3865463 2014-09-03 20:18:50