0

いくつかの列を持つテーブルがあります。INT タイプのレコードと DATETIME タイプのレコードの 2 つを使用して、いくつかのレコードをフィルタリングしたいと考えています。PHP PDO 拡張機能を使用してデータベースに接続し、いくつかのクエリを作成しています。

datetime フィールドが指定された日付よりも小さいテーブルからレコードを取得しようとしています。

<?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']);
}
4

3 に答える 3

0

準備されたステートメントはまったく必要ありません

WHERE flag_warning = 1 AND update_date < CURDATE()
于 2013-08-07T10:50:37.853 に答える
-1

カラム名date_time_upd

編集:

さて、私はそれを理解しました。クエリに「UPDATE、DELETE、または INSERT」という単語が含まれているかどうかをチェックするコードの断片があり、そのような単語があった場合、クエリ結果はフェッチされませんでした。SELECT ワードを検索するように変更しました。これですべて問題ありません。

于 2013-08-07T11:39:19.143 に答える