我有一個相對較小的搜索表單,我希望人們用來搜索我的SQL數據庫。PHP從URL查詢創建MySQL查詢
我以前做過這件事的唯一方法是擁有十億嵌套if語句。有一個更好的方法嗎?
我解析我的網址查詢字符串,所以我有我說的變量:
如果我只是試着去嘗試:
$sql = "SELECT * FROM $table_name WHERE ";
if(isset($city)) {
$sql .= " `City` LIKE " . $city;
}
if(isset($bedrooms)) {
$sql .= " AND `Bedrooms` >= " . $bedrooms;
}
if(isset($elementaryschool)) {
$sql .= " AND `ElementarySchool` = " . $elementaryschool;
}
然後,我遇到一個問題,當$ city未設置,因爲我的查詢以「SELECT * FROM $ table_name WHERE和Bedrooms
> = $臥室結束」
這不會正好工作。我有什麼選擇?
我完全理解如何做到這一點,如果我在我的查詢中包含所有參數,這似乎是所有以前的問題都要求。但是,如果不是所有字段都有價值,我該如何做到這一點?我總共有12個可能的字段用於搜索,他們可以只搜索1或全部搜索到12個。
正如我之前提到的,所有我已經能夠找到的問題都提到了一個問題靜態SQL查詢,而不是具有不同數量參數的查詢。
同意這個問題不是重複的(至少是引號/蜱鏈接),如果重新打開,我會幫助你。同時,請閱讀[PDO並準備好帶有參數的語句](http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php/60496#60496) 。直接在查詢字符串連接中使用用戶輸入可能會使您容易受到SQL注入攻擊 – WebChemist