[Codeigniter-users] SQLクエリの生成について

Back to archive index

decoy youtu****@gmail*****
2008年 7月 6日 (日) 14:34:52 JST


decoyです。

WHERE句に
start_day <= DATE_FORMAT(CURRENT_TIMESTAMP(), '%Y-%m-%d %H:%i:%s')
AND end_day >= DATE_FORMAT(CURRENT_TIMESTAMP(), '%Y-%m-%d %H:%i:%s')
というものを使いたい場合
Active Record クラスのwhereメソッドやget_whereメソッドに
どのように書けばクエリが正しく生成されますでしょうか。

1.
$this->db->get_where(
    テーブル名,
    array(
        'start_day <=' => "DATE_FORMAT(CURRENT_TIMESTAMP(), '%Y-%m-%d 
%H:%i:%s')",
        'end_day =>' => "DATE_FORMAT(CURRENT_TIMESTAMP(), '%Y-%m-%d 
%H:%i:%s')",
    ),
);

2.
$this->db->where('start_day <=', "DATE_FORMAT(CURRENT_TIMESTAMP(), '%Y-%m-%d 
%H:%i:%s')");
$this->db->where('end_day >=', "DATE_FORMAT(CURRENT_TIMESTAMP(), '%Y-%m-%d 
%H:%i:%s')");
$this->db->get(テーブル名);

1や2のやり方でやった場合、下記のようになってしまい正しく生成されませんでした。 

start_day <= 'DATE_FORMAT(CURRENT_TIMESTAMP(), \'%Y-%m-%d %H:%i:%s\')'
end_day >= 'DATE_FORMAT(CURRENT_TIMESTAMP(), \'%Y-%m-%d %H:%i:%s\')'

$this->db->query(クエリ直書き);すれば意図している結果は返ってきますが
出来るだけ避けたいと考えております。

以上、宜しくお願い致します。 




Codeigniter-users メーリングリストの案内
Back to archive index