将$ _SESSION放入mySQL查询中

时间:2012-04-18 21:18:32

标签: php sql session

如果我手动将 $ add 声明为值(例如30),当我尝试将其设置为查询失败的user_id会话时,我的查询运行正常。

// $add = 30;
// The line above works
$add = mysql_real_escape_string($_SESSION['user_id']);
$query = "UPDATE mytable SET act=0, add=$add WHERE id=$selected_user";

我出错的任何想法。

3 个答案:

答案 0 :(得分:1)

使用会话时,您需要在任何$_SESSION使用之前指定此内容,如下所示:

session_start();
//now you are able to use this
$_SESSION['user_id'] = 30;

另一方面,我遇到了和以前一样的问题,你需要做的是 将$_SESSION['user_id']放入变量中,然后您就可以毫无问题地将其传递给mysql_real_escape_string

$id = $_SESSION['user_id'];
//now use this:
$add = mysql_real_escape_string($id);

希望这有帮助。

答案 1 :(得分:1)

  问:我出错了什么想法?

答:是的。会议是空的。

SUGGESTIONS:

  1. 做一个“echo”来验证$ _SESSION ['user_id']是否为空(我99%肯定会是)

  2. 确保您实际上正在设置会话(例如“session_start()”)

  3. 确保您的<html>代码

  4. 调试设置$ _SESSION ['user_id']的代码

  5. 这是一个很好的链接:

    http://www.w3schools.com/php/php_sessions.asp

答案 2 :(得分:0)

我几乎可以保证您忘记了脚本顶部的session_start();。如果没有尝试回显会话变量,如果没有返回任何内容,则表示您没有设置任何内容。