0

如果我手动将 $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";

我出错的任何想法。

4

3 回答 3

1

When using sessions you always need to specify this before any $_SESSION usage like this:

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

By the other hand, I got the same problem as you before and what you need to do is to put the $_SESSION['user_id'] in a variable, then you will be able to pass it to the mysql_real_escape_string without problems.

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

Hope this helps.

于 2012-04-18T21:21:53.573 回答
1

问:有什么想法我哪里出错了吗?

答:是的。会话为空。

建议:

  1. 做一个“回声”来验证 $_SESSION['user_id'] 是空的(我 99% 肯定它会是)

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

  3. 确保您的“session_start()”出现您的<html>标签之前。

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

这是一个很好的链接:

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

于 2012-04-18T21:24:19.403 回答
0

我几乎可以保证您已经忘记session_start();了脚本的顶部。如果不尝试回显会话变量,如果没有返回任何内容,则说明您没有对其进行任何设置。

于 2012-04-18T21:26:20.543 回答