2014-05-11 2 views
0

사이트로부터 쿼리를 제출하여 MySQL 데이터베이스의 특정 레코드를 검색하려고합니다. 사이트 양식에서 쿼리를 실행할 때 '비어있는 쿼리 : 쿼리가 비어 있습니다'라는 mysql_error() 반환 값을 얻습니다.프런트 엔드 쿼리 및 PHP SQL 문

$Level = $_POST['level']; 
$Year = $_POST['year']; 
$Name = $_POST['name']; 
$Award = $_POST['award']; 

$query = mysql_query("SELECT * 
    FROM wineawards 
    WHERE LEVEL = $Level 
     OR YEAR = $Year 
     OR name = $Name 
     OR award = $Award 

    "); 

$result = mysql_query($query); 

확실하지 내가 여기서 뭔가를 누락하거나 잘못을 입력하고 있다면?

+0

는 항상 값을 게시하고 –

+0

년이 ''$ Level'','$ Year''..and 다른 이들처럼 작은 따옴표로 변수를 감싸 열이 확인? – underscore

+2

** 위험 ** : [오래된 ** 데이터베이스 API] (http://stackoverflow.com/q/12859942/19068)를 사용하고 있으며 [최신 대체] (http : // php. net/manual/ko/mysqlinfo.api.choosing.php). 또한 ** [SQL 주입 공격] (http://bobby-tables.com/) **에 현대적인 API를 사용하면 쉽게 방어 할 수 있습니다 ** (http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php)을 사용하십시오. – Quentin

답변

0
$query = mysql_query("SELECT * 
    FROM wineawards 
    WHERE LEVEL = '$Level' 
     OR YEAR = '$Year' 
     OR name = '$Name' 
     OR award = '$Award' 

    "); 

$result = mysql_query($query); 
+0

이것이 대답을 제공하지 않는 이유 – user3470953

+0

나는 내가 그 질문을 잘못 읽은 것으로 믿고, 나는 나의 권고를 업데이트하고있다. – Claies

0

$query = mysql_query("SELECT * 
    FROM wineawards 
    WHERE LEVEL = '" . $Level . "' 
    OR YEAR = '" . $Level . "' 
    OR name = '" . $Name . "' 
    OR award = '" . $Award . "' 

");