Php $\会话查询差异
我只是想知道这个查询之间的区别是什么:Php $\会话查询差异,php,session,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."'"; 两者看起来很相似,但第二个不起作用。如果我只需要会话
$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."'";
两者看起来很相似,但第二个不起作用。如果我只需要会话的值,为什么还要连接呢?假设我的
$\u会话['mysql\u result\u id']
中存储的值是'2'
,它是否与说id=2
相同?为什么我必须连接它?为什么我不能把“WHERE id=$mysql\u result\u id”
?这就像是在问:
mysql_query("select now() from dual");
以及:
这只是毫无理由地浪费内存。您正在函数外部初始化变量
$mysql_result_id = $_SESSION['mysql_result_id'];
此变量超出了函数的作用域,而$\u会话不在。这就是它不起作用的原因。在这里阅读
如果你想让方法2起作用,那么你必须移动它
$mysql_result_id = $_SESSION['mysql_result_id'];
在你的函数中(你只是把它粘贴在你的问题中,然后删除)
回答第二个问题:不必用引号括起数值 他写了第二个对他不起作用…是的,第二个不起作用。但是第一个,是的。这是我的问题。显示更多的代码,问题中的代码应该可以工作,错误在其他地方,有一些不太精细的方法将变量插入双引号字符串中。还有更简单的方法向SQL查询添加输入(搜索“准备好的语句”)。尝试
echo$query
second query并检查其结果是什么?我得到值2,在使用第二个概念之前,一切都正常。这是$query=“SELECT*FROM users WHERE id=”$mysql\u result\u id。“”;不,如果回显$query,则不会得到值2。将echo$query
放在$query=“SELECT*FROM users WHERE-id=”“$mysql\u result\u id.”的后面代码>我得到了类似的结果,你自己去试试吧,可爱的家伙!谢谢
$mysql_result_id = $_SESSION['mysql_result_id'];