簡體   English   中英

PDO MySQL獲取上一個日期的記錄

[英]PDO MySQL get records with previous date

我有一張桌子,上面有幾列。 我想使用其中兩個過濾某些記錄,一個具有INT類型,第二個具有DATETIME類型。 我正在使用PHP PDO擴展來連接數據庫並進行一些查詢。

我正在嘗試從表中獲取記錄,其中datetime字段低於給定日期,fe

<?php
    $date = date("Y-m-d");
    $this->db->query("SELECT * FROM `" . DB_PREFIX . "fanpage` WHERE `flag_warning` = ? AND DATE(`update_date`) < ?", array(1, $date));
?>

這將返回NULL,但是當我將相同的查詢粘貼到phpMyAdmin窗口中時,它將顯示正確的記錄。 問題是什么?

編輯:

查詢功能片段:

public function query($sql, $params = array())
{
    $result = array();
    $result['query'] = $this->pdo->prepare($sql);
    $result['query']->execute($params);
    $this->lastResult = $result['query'];
    unset($result['query']);
}

完全不需要准備好的陳述

WHERE flag_warning = 1 AND update_date < CURDATE()

采用

$sqlStatement = $this->db->prepare("SELECT * FROM `" . DB_PREFIX . "fanpage` WHERE `flag_warning` = ? AND `update_date` < CURDATE()");
$this->db->execute(array(1));
$result = $sqlStatement->fetchAll(PDO::FETCH_ASSOC);

現在,$ result具有您所需要的。

我已將列名稱更改為date_time_upd並且現在可以正常使用,我認為是錯誤或其他內容,也許有人可以解釋一下?

編輯:

好的,我知道了。 有一小段代碼檢查查詢中是否出現了“ UPDATE,DELETE或INSERT”字樣,以及是否有類似的字樣未獲取查詢結果。 我已將其更改為搜索SELECT字詞,現在一切正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM