[我正在尝试访问类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);
答案 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
列。