【发布时间】:2019-01-19 05:09:27
【问题描述】:
在我的 php 中,我进行了这个查询
$sql = "SELECT * FROM session WHERE sessionid = '$_SESSION["id"]';";
导致错误
解析错误:语法错误,意外 '"',需要 '-' 或标识符 (T_STRING) 或变量 (T_VARIABLE) 或数字 (T_NUM_STRING) /opt/lampp/htdocs/Chore-Champs/index.php 在第 6 行
显然我嵌套引号的方式有问题,所以我尝试了不同的方法,包括
$sql = "SELECT * FROM session WHERE sessionid = " . $_SESSION['id'] . ";";
这仍然会导致同样的错误。
通常第一种方法适用于普通变量,例如$username,但我猜会话变量的处理方式不同。编写此查询的正确方法是什么?
【问题讨论】:
-
您需要将
$_SESSION["id"]括在{}中以保护"s 周围的id即$sql = "SELECT * FROM session WHERE sessionid = '{$_SESSION["id" ]}';"; -
我强烈建议使用准备好的语句,请参见此处:stackoverflow.com/questions/60174/…