2012-10-19 65 views
0

爲什麼會出現這種類型的錯誤在此字符串:PHP字符串是給語法錯誤

$query="SELECT Name,Lastname FROM $_SESSION['SESS_MAIN_BASE'] s, 
    WHERE s.FK_ID_user={$id_user} 
    AND DATE(s.time) BETWEEN '".$d_year1."-".$d_month1."-".$d_day1."' AND '".$d_year2."-".$d_month2."-".$d_day2."'"; 
+0

從數組鍵中刪除引號。在雙引號字符串中使用數組時,帶引號的鍵將發出警告。或者切換到'{}'封裝符號。 –

回答

8

更換

$query="SELECT Name,Lastname FROM $_SESSION['SESS_MAIN_BASE'] s, 

隨着

$query="SELECT Name,Lastname FROM {$_SESSION['SESS_MAIN_BASE']} s, 

更好

$query= "SELECT Name,Lastname FROM %s s, WHERE s.FK_ID_user= '%d' AND DATE(s.time) BETWEEN '%d-%d-%d' AND '%d-%d-%d'"; 
$query = sprintf($query,$_SESSION['SESS_MAIN_BASE'],$id_user,$d_year1 ,$d_month1,$d_day1,$d_year2,$d_month2,$d_day2); 
+1

+1 @Baba again .. – GBD

+0

@GBD謝謝..... :) – Baba

+0

我仍然在這個地方發生錯誤:WHERE s.FK_ID_user =''' –

0

試試這個:

$query="SELECT Name,Lastname FROM {$_SESSION['SESS_MAIN_BASE']} s, "; 
$query.="WHERE s.FK_ID_user={$id_user}"; 
$query.="AND DATE(s.time) BETWEEN '".$d_year1."-".$d_month1."-".$d_day1."' AND"; 
$query.="'".$d_year2."-".$d_month2."-".$d_day2."'"; 
+1

毫無意義。這不會改變,只會讓事情變得更難以閱讀。我不會-1因爲你已經放入了'{}',這將解決問題。 –

1

變化

$_SESSION['SESS_MAIN_BASE'] 

{$_SESSION['SESS_MAIN_BASE']} 

$ _SESSION正在成爲空白,因爲[]是一個字符串。

0
$query="SELECT Name,Lastname FROM $_SESSION['SESS_MAIN_BASE'] s, 
    WHERE s.FK_ID_user=$id_user 
    AND DATE(s.time) BETWEEN '$d_year1-$d_month1-$d_day1' AND '$d_year2-$d_month2-$d_day2'";