2011-06-08 66 views
0

我做了這個簡單的註銷腳本時:故障排除「意外T_ENCAPSED_AND_WHITESPACE」調用的mysql_query()

<?php 
session_start(); 
$db_connect = mysql_connect('localhost', 'root', '*****'); 
    if(!$db_connect) 
     { 
     die('Не може да се осъществи връзка с базата данни' . mysql_error()); 
     } 
mysql_select_db("chat", $db_connect); 
mysql_query("DELETE FROM activeusers WHERE au_id = '$_SESSION['UserId']'"); 
mysql_close($db_connect); 
session_unset(); 
session_destroy(); 
?> 

但是當我把session_unset()session_destroy()在結束我的編輯顯示與mysql_query我還沒出現的錯誤」噸試過這個,但我認爲這可能是這樣寫的我清空$ _SESSION數組(),因此$_SESSION['UserId']在查詢之前被銷燬。我在這裏,我該怎麼做對嗎?

+0

實際的錯誤是什麼? – 2011-06-08 05:42:49

+0

你能發佈錯誤嗎? – tradyblix 2011-06-08 05:44:29

+0

解析錯誤:語法錯誤,意外的T_ENCAPSED_AND_WHITESPACE,期望C:\ Program Files \ webPHP \ xampp \ htdocs \ MyChat \ logout.php中的T_STRING或T_VARIABLE或T_NUM_STRING在第9行 – Leron 2011-06-08 05:49:09

回答

1

格式的mysql_query -command這樣的:

mysql_query("DELETE FROM activeusers WHERE au_id = '".$_SESSION['UserId']."'"); 

這使得確保其正確嵌入命令的SQL部分。

1

查詢更改爲:

mysql_query("DELETE FROM activeusers WHERE au_id = '".$_SESSION['UserId']."'"); 
0

如果你想內聯字符串中的變量,你應該做的其中之一:

// Enclose the variable in curly braces: 
mysql_query("DELETE FROM activeusers WHERE au_id = '{$_SESSION['UserId']}'"); 

// Remove quotes from the element name: 
mysql_query("DELETE FROM activeusers WHERE au_id = '$_SESSION[UserId]'"); 

http://php.net/language.types.string#language.types.string.parsing關於如何PHP解釋更多信息字符串中的變量。