2017-05-18 11 views
0

다음과 같은 문제점이 있습니다. 전자 상거래 웹 사이트를 코딩하고 있는데, 일정 기간 동안 프로모션이 있습니다. 시간이 지나면 프로모션이 해당 데이터베이스 active 값을 0으로 변경합니다. 프로모션을 확인할 때 첫 번째 조건은 active=1이지만 일부 경우에는 MySQL이 무시합니다. - 무엇을, 테이블 및MySQL sql은 WHERE 조건을 무시합니다.

$productPromotion = $db->getResults('*', TABLE_PROMO, "active = '1' 
AND (discount_subject = 'all_orders' 
OR discount_subject_product = ".$values['product']['id'].") 
OR (discount_subject = 'category' 
AND discount_subject_category = ".$categoryId[0] . ") ORDER BY id ASC"); 

$db->getResult 3 개 매개 변수를 사용자 정의 함수입니다 : 여기

내 가장 최근의 문제의 예입니다.

이미 만료되어 있고 활성 = 0 인 프로모션을 반환하는 것이 문제입니다. 내 SQL에 문제가 어디 있습니까?

+2

MySQL을 방지하기 위해 준비 제표에 대한 자세한 내용 or

$productPromotion = $db->getResults('*', TABLE_PROMO, "active = '1' AND ((discount_subject = 'all_orders' OR discount_subject_product = ".$values['product']['id'].") OR (discount_subject = 'category' AND discount_subject_category = ".$categoryId[0] . ")) ORDER BY id ASC"); 

을 arround 브라켓을 추가해야합니다. 생성중인 실제 SQL 쿼리는 무엇입니까? –

답변

1

당신은 또한 당신의 PHP 코드를 볼 수 없습니다 SQL 주입을