2017-08-21 57 views
0

我知道這個問題之前曾被問過。我檢查了舊線程,但沒有成功。這就是爲什麼我再次在這裏發佈。如何在SQL select語句中使用PHP變量

我有這個php變量$ _POST [「selected-Items」]這是在另一個頁面的下拉列表中選定的值的結果。例如,如果我從列表中選擇國家,訂單,日期,那麼結果將是國家,訂單,日期

我想從我的SQL Server表中提取此變量的列。我正在使用此查詢

$query = 'SELECT "'.$_POST['selected-Items'].'" FROM database.mytable'; 

任何建議請如何將正確的方式添加到查詢中的變量?非常感謝你。

+0

'$ _POST [「selected-Items」] ='country,order,date''或'$ _POST [「selected-Items」] = array(country,order,date);'?那裏有什麼格式的數據?值作爲數組或以逗號分隔的字符串進入後? –

+0

'例如,如果我選擇了國家,訂單''ORDER'在sql-server上保留。 –

+2

不要直接使用var ..這可能會導致sqlinjection ..檢查你的數據庫驅動程序,並使用..參數綁定..和用於篩選sql中的值使用 – scaisEdge

回答

2

對於列名,您不必使用雙引號"

SELECT column1, column2, ... FROM table_name 

如果$ _ POST [「選擇項」]是一個數組,你應該破滅它的項目與,

$arr = ["value1", "value2", "value3"]; 
$string = implode(", ", $arr); 

使用implode$string會像下面的代碼後,你可以用它來SQL:

"value1, value2, value3" 

你的代碼必須是這樣:

$query = 'SELECT ' . $_POST['selected-Items'] . ' FROM database.mytable'; 
+0

非常感謝。 ) – JuniorDev

相關問題