php - 如何在 SQL 语句中正确引用 PHP session 变量

标签 php mysql sql variables

我在网上看到了一些关于此的帖子,但没有任何建议对我的情况有效。

我的情况很简单.. 用户登录到 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/

相关文章:

php - 如何在zend框架中进行Backing

php - 如何在 Laravel 5 中处理嵌套的 JSON 对象请求?

mysql - 如何在 MySQL 中添加此条件的约束?

mysql - 更正公式的 SQL 脚本

sql - 带有 select 返回一个值的 PostgreSQL 函数

php - PDO SQL Server 扩展间歇性故障

php - 模型类的 codeigniter 实例

MySQL 复制 - 一个网站,许多服务器,不同的大陆

SQL 移动平均线

mysql - sql group by 不显示所有结果