我想申請多個WHERE條件,以我的查詢就像這樣:使用一個以上的WHERE條件在MySQL查詢
$hotel="Hotel Name";
$data1=explode('/',$data1);
$newdata1=mktime(0, 0, 0, $data1[0], $data1[1], $data1[2]);
$newdata1=date("Y-m-d", $newdata1);
$data2=explode('/',$data2);
$newdata2=mktime(0, 0, 0, $data2[0], $data2[1], $data2[2]);
$newdata2=date("Y-m-d", $newdata2);
$filtro=mysql_query("SELECT *
FROM hotels_rates_flat
WHERE htl_name = $hotel AND
given_date>=$newdata1 AND
given_date<=$newdata2
ORDER BY htl_name, city_zone, given_date")
or die(mysql_error());
它返回以下錯誤:
* 你有你的SQL語法錯誤;請檢查與您的MySQL服務器版本相對應的手冊,以便在第1行的「do Hotel AND given_date> = 2012-09-01 AND given_date < = 2012-09-05 ORDER BY htl_nam'處使用正確的語法。*
這真的困擾我,因爲我看不到任何明顯的錯誤。
我將不勝感激任何幫助。
謝謝
請告訴我'$ hotel'不是唯一的被直接傳遞到一個SQL查詢原始用戶輸入!這將是[壞](http://php.net/manual/en/security.database.sql-injection.php)。 – user113215
單引號您在查詢中使用的所有非整數值,如下面提供的@njk。 – inhan
$ hotel來自選擇輸入,而不是來自文本輸入類型。 「酒店名稱」只是一個例子。在這個問題上,我沒有使用真正的酒店名稱。 –