2010-03-15 67 views
0

我的一個網頁我希望我的經理用戶查看分配給他們的所有活動(個人)。爲了做到這一點,我需要的是這樣的:在SQL查詢中繪製會話值? PHP和MySQL

$sql = "SELECT * FROM activities WHERE manager = $_SESSION['SESS_FULLNAME']"; 

現在很明顯,這個語法都錯了,而是因爲我是新來這個東西,是有辦法,我可以調用從用戶的全名查詢中的會話?這是因爲,當我調用要在網頁中顯示的數據庫值時,僅顯示登錄的經理的活動。例如,活動表具有全名條目的管理員列。任何幫助深表感謝。謝謝。

回答

0
$sql = "SELECT * FROM activities WHERE manager = '".$_SESSION['SESS_FULLNAME']."'"; 

要你應該使用報價查詢中使用變量...

使用'查詢定義字符串..

即。 如果經理是一個數字使用 WHERE manager = ".$_SESSION['SESS_FULLNAME'](沒有「)
如果經理是一個字符串 WHERE manager = '".$_SESSION['SESS_FULLNAME']."'

+0

你是我的英雄(直到我遇到我的下一個問題!)非常感謝你。 – Yvonne 2010-03-15 14:31:44

+1

請注意,字符串文字必須使用mysql_real_escape_string() – 2010-03-15 14:40:41

+0

@Derek進行轉義。請參閱Shrapnel上校的建議,並且不要在查詢中包含未轉義的字符串。另請參見:SQL注入。 – middus 2010-03-15 15:00:01

2

其實,你不必‘離開’的字符串。您可以更輕鬆地做到這一點:

$sql = "SELECT * FROM activities WHERE manager = {$_SESSION['SESS_FULLNAME']}";

更多信息,請參見PHP's double-quoted string syntax

也就是說,請在處理動態參數時使用prepared statements或轉義變量(按照優先順序)。