如何使用php session访问数据库中的值?

时间:2018-07-10 17:42:02

标签: php session

[我正在尝试访问类accountPass] [1]

getParams()

session_start(); if(!isset($_SESSION['login'])) { header("location:login.php"); }

include_once '../controller/controller.php';

[但是我似乎不明白为什么这里的结果是错误的。] [2]

include_once '../controller/Validation.php';

$account = new account();
$validation = new Validation();

$id = $_SESSION['user.id'];
$query = "SELECT * FROM accounts WHERE user.id = '$id'";
$res = $account->accountPass($query);

1 个答案:

答案 0 :(得分:0)

您需要通过用已知值对其进行测试来验证查询是否返回了一行。根据MySQL的快速测试,当查询user.id的列时,如果没有回勾号,该列将无效。 (假设您使用的是MySQL或类似版本)

SELECT * FROM accounts WHERE user.id = '1'; -- fails
SELECT * FROM accounts WHERE `user.id` = '1'; -- works

因此,不建议在列名中使用句点。如果要使用别名联接表,则别名指示符后跟一个句点,然后是列名。例如:

SELECT a.user, r.role FROM accounts AS a LEFT JOIN roles as r ... WHERE a.user = 1001;

(以上查询不完整)

user表中获取accounts列,从role表中获取roles列。