2014-10-29 181 views
0

我不確定這是否可能,但我試圖構建一個可以構建MYSQL查詢的函數。

它有一個基本查詢。如果URL有一個get值(script.php?game = AGame),它將獲取變量並重命名它。然後,該腳本將附加相應所需的完成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 - 在/www/sites/164/index.php假定 'G' 上線46

說明:使用未定義的常量GAME_TITLE的 - 假定 'GAME_TITLE' 是/ www /位點/164/index.php在線46

任何幫助,將不勝感激。

+1

當你意識到三件事有可能:1,關聯數組鍵類型爲字符串2.儘量'var_dump'你傳遞什麼作爲關鍵的3字符串文字用單引號或雙引號括起來 – zerkms 2014-10-29 21:00:41

+0

和4.字段名不用單引號括起來。無論是什麼,或反引號。即' – developerwjk 2014-10-29 21:03:10

+1

你的代碼容易受到SQL注入攻擊。在編寫與數據庫交談的產品代碼之前,請研究此主題。 – DampeS8N 2014-10-29 21:04:43

回答

0

調用此函數

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