$ _SESSION查询差异

时间:2013-01-21 03:55:02

标签: php session

我只是想知道这个查询有什么区别:

$query = "SELECT * FROM users WHERE id='".$_SESSION['mysql_result_id']."'";

并制作一个变量:

$mysql_result_id = $_SESSION['mysql_result_id'];
$query = "SELECT * FROM users WHERE id='".$mysql_result_id."'"; 

两者似乎相似,但第二部分不起作用。如果我只需要会话的价值,为什么还需要连接?假设我$_SESSION['mysql_result_id']中存储的值为'2',是否与id=2一样?为什么我要连接它?为什么我不能放"WHERE id=$mysql_result_id"

2 个答案:

答案 0 :(得分:1)

您正在初始化函数外的变量

$mysql_result_id = $_SESSION['mysql_result_id'];

此变量超出了您的功能范围,而$ _SESSION则没有。这就是为什么它不起作用。在这里阅读PHP Variable Scope

如果您希望方法2工作,那么您必须移动此

$mysql_result_id = $_SESSION['mysql_result_id'];

在你的功能中(你刚刚粘贴在你的问题中,然后删除)

回答你的第二个问题:你不必用引号包装数值。

答案 1 :(得分:-2)

这就像问两者之间的区别:

mysql_query("select now() from dual");

$sql = "select now() from dual";
mysql_query($sql);

只是浪费了记忆,没有充分的理由。