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 구문의 오류. 'do hotel AND given_date> = 2012-09-01 및 given_date < = 2012-09-05 ORDER BY htl_nam'줄 1 근처에서 사용할 올바른 구문에 대한 MySQL 서버 버전에 해당하는 설명서를 확인하십시오. *
나는 명확한 실수를 볼 수 없기 때문에 이것은 정말로 나를 괴롭 히고있다.
어떤 도움을 주셔서 감사합니다.
는
$의 호텔'은 SQL 쿼리에 바로 전달되는 것 원료 사용자 입력되지'제발 말해! 그건 [나쁜] 일 것입니다 (http://php.net/manual/en/security.database.sql-injection.php). – user113215
아래에 제안 된 @njk와 같이 쿼리에 사용중인 정수가 아닌 모든 값을 작은 따옴표로 묶으십시오. – inhan
$ 호텔은 텍스트 입력 유형이 아닌 선택 입력에서 제공됩니다. "호텔 이름"은 단지 샘플 일뿐입니다. 나는이 문제에서 진짜 hote 이름을 사용하지 않았다. –