调用mysql_query()时对“意外的T_ENCAPSED_AND_WHITESPACE”进行故障排除

时间:2011-06-08 05:39:04

标签: php mysql

我已经制作了这个简单的注销脚本:

<?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']被销毁。我就在这里,我该怎么做呢?

3 个答案:

答案 0 :(得分:1)

格式化mysql_query - 命令,如下所示:

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

这确保它已正确嵌入到命令的SQL部分中。

答案 1 :(得分:1)

将您的查询更改为:

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

答案 2 :(得分: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]'");

有关PHP如何解释字符串中变量的更多信息,请参阅http://php.net/language.types.string#language.types.string.parsing