2016-03-02 106 views
-1

我試圖在SELECT語句中使用php會話變量來獲取存儲在多個數組數據庫中的數據。 不過,我面臨着下面我的代碼一些挑戰:使用php會話變量從MySQL數據庫中獲取數據

<?php 
if(!empty($_SESSION['array'])) { 
    if($_SESSION['array'] == 'arrayname') { 

     $query = "SELECT '{$_SESSION['option']}' FROM '{$_SESSION['array']}' WHERE '{$_SESSION['key']}'='".mysqli_real_escape_string($link, '{$_SESSION['value']}')."'"; 

     if ($result=mysqli_query($link, $query)) { 

      while ($row = mysql_fetch_array($result)) { 

       echo $row['{$_SESSION['value']}']; 

      } 

     } 
     mysqli_close($link); // Closing Connection with Server 
    } 
} ?> 

任何試圖與上面的代碼,而顯示錯誤消息來獲取數據,等等;

Parse error: syntax error, unexpected 'value' (T_STRING) in C:\xampp\htdocs\content\fetchData.php on line 5 

我將不勝感激應對這一挑戰的方法。 在此先感謝!

+0

錯誤太多,未知數太多。 –

+0

只是一個提示,如果您在使用$ _SESSION,$ _POST,$ _GET等變量前將自己省去了很多麻煩。 IE:'$ option = $ _SESSION ['option']',然後'SELECT'{$ option}''。另外,如果這些值是用戶輸入的,那麼當你將它們存儲在$ _SESSION中時,你應該使用'mysqli_real_escape_string',這樣你不必每次使用該函數時都調用該函數,它已經是乾淨的了。最後,當所有其他的失敗時,你總是可以調用'die($ query);'在你定義'$ query'之後,然後你可以檢查你的查詢是否有錯誤。 – WheatBeak

回答

1

您的查詢,先得到你的變量:

$value = mysqli_real_escape_string($link, $_SESSION['value']); 

然後使用$value,而不是試圖嵌入像你有以上。

當您回覆該值時,您不需要單引號或圍繞$_SESSION的大括號。只是這樣做:

echo $row[$_SESSION['value']]; 

這應該解決您的當前錯誤,但你仍然有你的代碼更多的問題。即你在混合mysqlmysqli函數,這是行不通的。將代碼完全移至mysqli