2014-10-29 3 views
0

이것이 가능한지 확실하지 않지만 MYSQL 쿼리를 작성할 수있는 함수를 작성하려고합니다.

기본 쿼리가 있습니다. URL에 get 값이 있으면 (script.php? game = AGame) get 변수를 가져 와서 이름을 바꿉니다. 그런 다음 스크립트는 MYSQL 쿼리를 완료하는 데 필요한 필수 데이터를 추가합니다. 그러나

function build_query($getvar, $renamevar, $dbfield){ 
     $query = "SELECT * FROM release_dates "; 
     $arguments = 0; 

     if(isset($_GET['$getvar'])){ 
     $renamevar = $_GET['$getvar']; 

     if($arguments >= 1){ 
       $query .= "AND '$dbfield' = '$renamevar' "; 
       $arguments = $arguments +1; 
      } 
      else{ 
       $query .= "'$dbfield' = '$renamevar' "; 
      } 
     } 
    } 

    build_query(g, game, game_title); 

, 나는 다음과 같은 오류를 얻을 코드를 실행하는 경우 :

공지 사항 : 정의되지 않은 상수 게임의 사용 - 라인 (46)

에 /www/sites/164/index.php에 가정 '게임'

공지 사항 : 정의되지 않은 상수 g의 사용 - 라인 (46)

공지 사항에 /www/sites/164/index.php에서 'g'가정 : 정의되지 않은 상수 GAME_TITLE의 사용은 -/www /에서 사이트에 'GAME_TITLE을'가정 /164/index.php on line 46

도움이 될 것입니다.

+1

당신이 3 일 깨달을 때 가능이 : 1. 연관 배열의 키 유형'에 문자열 2. 시도입니다 당신이 키 첫째 3. 문자열 리터럴이로 전달할 것을 var_dump' 작은 따옴표 또는 큰 따옴표로 묶습니다 – zerkms

+0

및 4. 필드 이름은 작은 따옴표로 묶지 않습니다. 아무것도, 또는 역습. 나는. ' – developerwjk

+1

당신은 코드가 SQL 주입 공격에 취약합니다. 데이터베이스와 대화하는 생산 코드를 작성하기 전에이 주제를 연구하십시오. – DampeS8N

답변

0

통화 기능

build_query('g', 'game', 'game_title');