1

このコードを使用して、特定の日よりも前の日付の行を選択しています。SQLに<=(未満) を入力すると、致命的なエラーがスローされます。を追加するだけで機能します(エラーは発生しませんが、結果は間違っています)=

https://github.com/ajillion/PHP-MySQLi-Database-Classの PHP-MySQLi-Database-Class を使用しています

$params = array($id, $day, $day);
$results = $db->rawQuery("
       SELECT * 
       FROM `forecasts` 
       WHERE `geonameid`=? and (DAY(time_from) <= DAY(?) 
       OR DAY(time_to) <= DAY(?))", $params);

致命的なエラー: クエリの準備に問題 (SELECT * FROM forecastsWHERE geonameid=? and (DAY(time_from) ) SQL 構文にエラーがあります。near '' を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください

私が間違っていることは何ですか?

4

1 に答える 1

3

PHP-MySQLi-Database-Class の問題のようです。101 行目、関数 rawQuery

$this->_query = filter_var($query, FILTER_SANITIZE_STRING);

この関数はタグを削除し、クエリの結果は

SELECT * FROM `forecasts` WHERE `geonameid`=? and (DAY(time_from)

したがって、この行を次のように置き換えることができます

$this->_query = $query;
于 2012-11-27T12:20:36.053 に答える