2016-08-02 36 views
-2

21行: -

$sql="SELECT DISTINCT sem from $_SESSION['ye']"; 

,我得到一個錯誤

" Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\xampp\htdocs\try1\Model\attendanceModel.php on line 21"

+0

雖然它的醜陋和不安全建立這樣的SQL,PHP確實允許把在「複雜變量擴展」在一個字符串插值像這樣:'$海峽=「嗒嗒blah {$ _SESSION ['ye']}「'。注意包裝大括號,並且與其他允許任何表達式的語言不同,構造僅限於變量擴展。 – user2864740

回答

1

當插值陣列物品放入您需要使用複雜的內插語法的字符串(敷在{}):

$sql = "SELECT DISTINCT `sem` from `{$_SESSION['ye']}`"; 

這是一般簡單的只值保存到一個輔助變量。它可以使你的代碼更易於閱讀:

$ye = $_SESSION['ye']; 
$sql = "SELECT DISTINCT `sem` from `$ye`"; 
3

首先指定表名變量

$tableName = $_SESSION['ye']; 

然後在查詢中使用的變量名

$sql = "SELECT DISTINCT sem from `$tableName`"; 

或只需使用

$sql = "SELECT DISTINCT sem from `". $_SESSION['ye']."`"; 
3

使用這樣的

$sql="SELECT DISTINCT sem from ".$_SESSION['ye']; 
-1

你必須保持這樣的腳本。

$sql="SELECT DISTINCT sem from ".$_SESSION['ye']; 
+0

這是與19分鐘前的upvoted回答相同的字符。 – OGHaza

+0

但是,這並不意味着停止回答問題。 –

+0

歡迎來到SO。雖然我們感謝您的回答,但如果它能提供其他答案的附加價值會更好。在這種情況下,您的答案不能提供額外的價值,因爲[Rakesh Kumar](http://stackoverflow.com/users/6540780/rakesh-kumar)已經發布了該解決方案。如果以前的答案對你有幫助,你應該[投它](http://stackoverflow.com/help/privileges/vote-up)。 – OGHaza