在会话中设置的MySQL datetime与datetime。哪个先来?

时间:2011-03-12 12:31:12

标签: php mysql sql

我正在尝试计算从数据库获得的结果是否在会话中设置的时间之后生成。但是,它似乎不起作用。

我设置了这样的时间会话:

$_SESSION['lastVisit'] = $user['lastVisit'];

其中$ user ['lastVisit']是我数据库中的日期时间字段。

我正在尝试从数据库中选择结果:

if($unreadThreadsSql = $cms->db->query('SELECT * FROM forum_threads WHERE posted < ' . $_SESSION['lastVisit']))

我不确定我在这里做错了什么,并希望你们的意见。作为参考,这是整个代码。我可能只是在某处做错了。

public function __construct()
{
    $this->getUnread();
}

private function getUnread()
{
    global $cms;

    if($unreadThreadsSql = $cms->db->query('SELECT * FROM forum_threads WHERE posted < ' . $_SESSION['lastVisit']))
    {
        $forumSQL = $cms->db->query('SELECT * FROM forum_for');
        while($forums = $forumSQL->fetch_assoc())
        {
            $forumId = $forums['id'];
            $forumArray[$forumId] = $forums;
        }
        while($unreadThreads = $unreadThreadSql->fetch_assoc())
        {
            $forumId = $unreadThreads['forId'];
            $cms->db->query('INSERT INTO forum_unread(threadID, catID, forumID, userID, datetime, threadtime) VALUES('.$unreadThreads['id'].', '.$forumArray[$forumId]['cat_id'].','.$forumId.','.$_SESSION['userId'].',NOW(),'.$unreadThreads['posted'].' )');
        }
    }
}

帮助表示赞赏。

2 个答案:

答案 0 :(得分:2)

$_SESSION['lastVisit']是什么?你不应该引用这个值,比如:

"SELECT * FROM forum_threads WHERE posted > '" . $_SESSION['lastVisit'] . "'"

答案 1 :(得分:0)

SELECT * FROM forum_threads WHERE posted < ' . $_SESSION['lastVisit']

不应该是> ' . $_SESSION['lastVisit']