簡體   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