0

私は3つのテーブルを持っています。

エピソード、シーズン、Episode_Season

私はそのような見方をしました

"CREATE VIEW episode_season_view AS SELECT * FROM episode
INNER JOIN episode_season ON episode.id = episode_season.episode_id
INNER JOIN season ON season.id = episode_season.season_id";

魅力のように機能するところで... MysqlWorkbenchでこのクエリを実行すると

"SELECT * FROM season_episode_view
WHERE first_aired > CURDATE() AND season_id = 600";

正しい結果を返します。しかし、私がこれを行うとき、

R::getRow("SELECT * FROM season_episode_view
WHERE first_aired > ? AND season_id = ?", array(date('Y-m-d'), $season_id));

それは0行を返します...そして私はその理由を理解できませんか?

4

1 に答える 1

0

これは単なる推測ですが、PHP の日付関数を使用するのではなく、Redbean の MySQL 関数を使用してくださいgetAll()

$results=R::getAll("SELECT * FROM season_episode_view 
WHERE first_aired > ? AND season_id = ?", array(R::$f->curdate(), $season_id));

それでもうまくいかない場合は、組み込みのクエリを試すことができます。

$row=R::$f->begin()
  ->select('*')->from('season_episode_view')
  ->where(' first_aired > ? AND season_id = ?')->put(R::$f->curdate(),$season_id)
  ->get('row');

私が考えることができる他の唯一のことは、おそらくフィールドタイプが原因で、何らかの理由でfirst_aired列がPHPのものを好まないということですか?date()

于 2012-05-30T20:40:00.057 に答える