if (isset($_SESSION['user_tz'])) {
$posted = "CONVERT_TZ(p.posted_on, 'UTC', '{$_SESSION['user_tz']}')";
} else {
$posted = 'p.posted_on';
}
// Run the query:
$q = "SELECT t.subject, p.message, username, DATE_FORMAT($posted, '%e-%b-%y %l:%i %p') AS posted FROM threads AS t LEFT JOIN posts AS p USING (thread_id) INNER JOIN users AS u ON p.user_id = u.user_id WHERE t.thread_id = $tid ORDER BY p.posted_on ASC";
我把查询中的$ posted改成了一个普通的“posted_on”,它返回了时间,我也尝试了一些将它包装在“'和”“中,但那些结果完全打破了它;为了将来的参考,我想知道为什么变量没有传递给查询。这可能是一件非常简单的事情,我会感到很无聊,但帮助将非常感激。SQL查询中的变量无法正常工作?
谢谢。
你的语法看起来不错。您的错误可能存在于代码中的其他地方。如果在同一个地方用'echo $ posted'替换'$ q = ...'行,会发生什么? – njbair 2011-04-16 01:15:07
我收到'CONVERT_TZ(p.posted_on,'UTC','')',你说得对我有'$ _SESSION ['user_tz'] ='';'在一个包含文件中,但是我将它设置为NULL,那么我得到了一个未定义的变量错误,如果$setS ['user_tz'] = NULL,将不会设置'$ posted = p.posted_on';' ? – aph107 2011-04-16 01:25:29