我在网上看到了一些关于此的帖子,但没有任何建议对我的情况有效。
我的情况很简单.. 用户登录到 php 表单,使用后端 mysql 表进行身份验证,启动 session ,将它们带到下一页。
我想要做的是将其余用户数据带入文本框、表格等。但是,向我介绍这样做的唯一方法是引用 session 变量。到目前为止我所拥有的在下面,我已经尝试了它的许多变体,但似乎没有任何效果(即没有值,页面没有加载等)。不过,我对其他选择持开放态度。谢谢大家。
$query = "SELECT * FROM users WHERE username = '{$_SESSION['user']}'"
最佳答案
这是因为嵌套的、未转义的引号导致语法错误。尝试
$query = "SELECT * FROM users WHERE username = '"
. escape({$_SESSION['user']}) . "'";
或
$query = sprintf("SELECT * FROM users WHERE username = '%s'",
escape({$_SESSION['user']}));
并且从不将任何外部数据传递给您的查询而不进行转义(我在示例中使用的escape()
是元调用。根据您用来访问数据库的内容,您应该使用正确的方法来完成这项工作。它很容易找到,因为它在方法名称中包含 escape
(即 mysqli_real_escape_string()
)
关于php - 如何在 SQL 语句中正确引用 PHP session 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15817179/