/**
* Query the database, and grab a random banner.
*
* @return object Database row.
*/
protected function getRandomBanner()
{
try
{
$stmt = $this->db->prepare("SELECT * FROM banners WHERE Type=:type BETWEEN Start AND End ORDER BY RAND() LIMIT 1");
$stmt->execute(array(':type' => $this->type));
return $stmt->fetch(PDO::FETCH_OBJ);
} catch (PDOException $e) {
echo $e->getMessage();
}
}
このコードはクラスの一部です。単純なクエリ文字列display_banner.php?banner_type=leaderboardに基づいてバナー広告を表示するよう DB にクエリを実行します。それは完全に機能します。
ただし、バナーの開始日と終了日を確認できるように、「BETWEEN」を含めたいと思います。
繰り返しますが、このクエリが実行され、バナーが表示されます! しかし...「BETWEEN」を追加すると、「Type」に従わなくなりました。これで、長方形とリーダーボードが表示されます。クレイジーなのは、このクエリを実行すると phpMyAdmin にあることです。完全に機能します。