[英]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.