如果我手动将 $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";
我出错的任何想法。
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.
问:有什么想法我哪里出错了吗?
答:是的。会话为空。
建议:
做一个“回声”来验证 $_SESSION['user_id'] 是空的(我 99% 肯定它会是)
确保您实际上是在设置会话(例如“session_start()”)
确保您的“session_start()”出现在您的<html>
标签之前。
调试设置 $_SESSION['user_id'] 的代码
这是一个很好的链接:
我几乎可以保证您已经忘记session_start();
了脚本的顶部。如果不尝试回显会话变量,如果没有返回任何内容,则说明您没有对其进行任何设置。