-2

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

$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."'"; 

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

4

2 回答 2

1

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

$mysql_result_id = $_SESSION['mysql_result_id'];

此变量超出了您的函数的范围,而 $_SESSION 则不是。这就是为什么它不起作用。在此处阅读有关PHP 变量范围的信息。

如果您希望方法 2 起作用,那么您必须移动它

$mysql_result_id = $_SESSION['mysql_result_id'];

在您的函数内部(您刚刚粘贴在您的问题中,然后将其删除)

并回答您的第二个问题:您不必将数值用引号括起来。

于 2013-01-21T04:14:03.820 回答
-2

这就像问有什么区别:

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

和:

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

这只是无缘无故地浪费内存。

于 2013-01-21T03:57:11.990 回答