首页 > 解决方案 > 无法使用会话变量从表中获取数据

问题描述

所以,我只想从带有用户名的表中获取数据,这与登录的用户名相同。像这样的东西,但这不起作用。

$result_events = "SELECT * FROM task WHERE $_SESSION['username'] = $username;";

错误:

解析错误:语法错误,意外 '' (T_ENCAPSED_AND_WHITESPACE),在第 9 行的 /storage/ssd1/202/9375202/public_html/calendario.php 中需要 '-' 或标识符 (T_STRING) 或变量 (T_VARIABLE) 或数字 (T_NUM_STRING)

标签: phpmysql

解决方案


您需要更改此行

$result_events = "SELECT * FROM task WHERE $_SESSION['username'] = $username;";

   $tempUserName=$_SESSION['username'];
   $result_events = "SELECT * FROM task WHERE username = '$tempUserName'";

我想首先在您的代码中强调两件事,您使用 where 子句的方式不正确,因为根据您的代码,$_SESSION['username'] 必须是列名

第二件事是,通常我们在 DBMS 中以字符串(即 varchar 格式)存储用户名,因此当我们在 where 子句中使用它时,我们需要确保它是我们要比较的字符串。在您的代码中,您缺少那个单一的引用用户名


推荐阅读