繁体   English   中英

SQL查询中的变量不起作用?

[英]Variable in SQL Query Not Working?

    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";

我将查询中的$ post更改为一个简单的“ posted_on”,它返回了时间,我也尝试将其包装在''和“”中,但最终将它们完全破坏了。 为了将来参考,我想知道为什么该变量没有传递给查询。 这可能真的很简单,我会觉得很愚蠢,但将不胜感激。

谢谢。

NULL是isset()触发TRUE的有效值。 使用unset($_SESSION['user_tz']);

在我看来,您编写它的方式是将$ posted用作传递给date_format的值。 您真正想要的是$ posted的内容,因此您需要在其两边加上引号并将其值连接到$ q字符串中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM