我只是想知道这个查询有什么区别:
$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"
?
答案 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);
只是浪费了记忆,没有充分的理由。