我遇到了一个问题。我试图让用户知道最后一次操作是在15分钟内。我确信,当我不使用联接时,我的sql是有效的(尝试过),但当我添加join或LEFT、RIGHT或其他join时,我会得到所有用户,而不仅仅是在15分钟内激活。这是我的代码
function get_logged_users() {
global $dbh;
$users_info = $dbh->prepare(
'SELECT
users.username as `username`,
users.id as `id`,
ranks.style as `style`
FROM `users`
LEFT JOIN `ranks` ON users.rank=ranks.id;
WHERE users.last_login > ?');
$users_info->execute(array(date("Y-m-d H:i:s" ,strtotime( date("Y-m-d H:i:s")." -15 minutes" ))));
$users_info = $users_info->fetchAll();
return $users_info;
}
有人能帮我吗?:)谢谢
表:用户
排名
这只是WHERE
子句前的一个拼写错误:
...
LEFT JOIN `ranks` ON users.rank=ranks.id; <---
...
不应该有分号(;
指向查询的末尾)
试试这个sql-
$users_info = $dbh->prepare(
'SELECT
users.username as `username`,
users.id as `id`,
ranks.style as `style`
FROM `users`
JOIN `ranks` ON ranks.id=users.rank
WHERE users.last_login > ?');