mysql
  • filter
  • 2013-10-31 2 views 1 likes 
    1

    mysql 필터에 문제가 있습니다. 사용자에게 빈 필드가 있으면 쿼리가 작동하지 않습니다. 이 문제를 어떻게 해결할 수 있습니까? 입력하지 않으면 유형에 'NULL'을 보내려고했지만이 방법도 효과가 없습니다.MySQL 필터, WHERE

    $STH = $DBH->query(" 
    SELECT * 
    WHERE store ='$type' and sdn='$status' and price>='$price_s' and price<='$price_e' ORDER BY id DESC LIMIT $setlimit"); 
    
    
    $STH = $DBH->query(" 
    SELECT * 
    WHERE store ='$type' and sdn='$status' and price>='$price_s' and price<='$price_e' ORDER BY id DESC LIMIT $setlimit"); 
    
    +0

    '$ price_s'는 숫자 형입니까? –

    +1

    당신은 SQL을 주입하고 있습니다. 'type = 'OR 1 = 1 --'은 모든 제품을 반환합니다. DB 클래스가 다중 질의를 허용하지 않거나 더 악화되기를 바란다 : type = '; DROP TABLE 저장소; - '. 즉, FROM 부분은 어디에 있습니까? – h2ooooooo

    답변

    0

    예를 들어 다음과 같습니다. 테이블이 판매 된 경우 (당신은 FROM your_table 지시 테이블에서

    $STH = $DBH->query(" 
    SELECT * 
    

    WHERE store ='$type' and sdn='$status' and price>='$price_s' and price<='$price_e' ORDER BY id DESC LIMIT $setlimit"); 
    

    그냥 테이블의 이름을 넣어 작동해야 놓친

    $STH = $DBH->query(" 
    SELECT * from sales 
    WHERE store='$type' and sdn='$status' and price>='$price_s' and price<='$price_e' 
    ORDER BY id DESC LIMIT $setlimit"); 
    
    
    $STH = $DBH->query(" 
    SELECT * from sales 
    WHERE store='$type' and sdn='$status' and price>='$price_s' and price<='$price_e' 
    ORDER BY id DESC LIMIT $setlimit"); 
    
    0

    시도 필드가있는 경우)

    관련 문제