2012-01-26 40 views
1

我有一個包含多個表單的頁面,使用不同的.php頁面來處理和更新我的數據庫。在第一頁我的會話變量存儲在第二我試圖召回會話變量在我的where語句中使用。在SQL WHERE語句中使用會話變量

$sql="UPDATE Persons 
    SET newsletter='$_POST[newsletter]',howiPad='$_POST[howiPad]',invite='$_POST[invite]', messageforfriends='$_POST[messageforfriends]', possible_points='$_POST[possible_points]' 
    WHERE `usremail` = '$_SESSION['usremail']'"; 
+1

這是什麼問題? – Icarus

+4

http://bobby-tables.com/ – Crontab

+0

它只是沒有更新或什麼? – bowlerae

回答

4
$sql="UPDATE Persons 
    SET newsletter='$_POST[newsletter]',howiPad='$_POST[howiPad]',invite='$_POST[invite]', messageforfriends='$_POST[messageforfriends]', possible_points='$_POST[possible_points]' 
    WHERE `usremail` = '$_SESSION[usremail]'"; 
+0

我很難看到變化,但我同意這可能是正確的。刪除usremail周圍的括號內的單引號,否則你在單引號內有單引號 – bowlerae

+0

足夠簡單,非常感謝,我完全忽略了這一點。 – Mountaininja

1

就像一個mysql語句中的任何陣列,一定要永遠情況下,它的報價單或雙。

基本上只是你的帖子陣列複製到其中並切換到會話和usremail

0

例。

$statement = $db_connection->prepare("SELECT id, 
     usrname, 
     color, 
     chattext, 
     chattime 
FROM chat 
WHERE id > ? 
    AND usrname ='$_SESSION[usrname]' 
    AND chattime >= DATE_SUB(NOW(), INTERVAL 20 HOUR)"); 
$statement->bind_param('i', $id); 
+0

將您的代碼放在正確的格式中以便讀取! –