我在php中通過傳遞變量通過GET方法創建搜索查詢。當變量爲空時,它將傳遞如下查詢:在php中搜索查詢
SELECT * FROM table WHERE column_name = null
。
它顯示錯誤(顯而易見)。我想創建類似的查詢。如果用戶不從搜索選項中選擇任何內容,則應該從該列中提取所有數據。
這是什麼正確的邏輯? 謝謝。
代碼:
if(isset($_GET['selPetType']) && $_GET['selPetType'] != '')
{
$searchParams['petType'] = $_GET['selPetType'];
$queryStr .= " PetType='" .$_GET['selPetType']. "'";
}
if(isset($_GET['txtPetBreed1']) && !empty($_GET['txtPetBreed1']))
{
$searchParams['breed'] = $_GET['txtPetBreed1'];
$queryStr .= " AND PetBreed1 ='". $_GET['txtPetBreed1'] . "'";
}
$clause1 = "SELECT * FROM pet WHERE $queryStr ORDER BY `Avatar` ASC LIMIT $startLimit, $pageLimit";
$totalRun1 = $allQuery->run($clause1);
如果$ _GET中沒有任何內容正在傳遞,請不要執行任何SQL –
只需在SQL中不要使用「WHERE」。另外,請確保清理您的用戶輸入,您不需要任何SQL注入。 –
如果用戶選擇petBreed,那麼它會給我錯誤。因爲查詢語句以AND開頭......在第二個查詢中沒有WHERE。如果我打算將WHERE外延,那麼如果用戶選擇2個搜索選項,那麼WHERE將在查詢中爲2次... –