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

Back to archive index

decoy youtu****@gmail*****
2008年 7月 7日 (月) 23:48:34 JST


decoyです。

kunitsujiさん、こんばんは。
いつもいろいろとありがとうございます。

> '%Y-%m-%d %H:%i:%s'が¥がついてしまうということですよね?

%Y-%m-%d %H:%i:%sの前後の'に\がついてしまう事と
DATE_FORMAT()の前後に'がついてしまいますね。


> $start_day = "start_day <= DATE_FORMAT(CURRENT_TIMESTAMP(), '%Y-%m-%d 
> %H:%i:%s')";
> $this->db->where($start_day);
> $query = $this->db->get('c_access_log_id');

やっぱり上記のような書き方にするしかないんでしょうかね?
仮にそうならNOW()等の関数を利用した演算子での比較は
CIのActive Recordクラスでは不可能というところでしょうか?

// decoy

----- Original Message ----- 
From: "kunitsuji" <tsuji****@m-s*****>
To: <codei****@lists*****>
Sent: Monday, July 07, 2008 11:45 AM
Subject: Re: [Codeigniter-users]SQLクエリの生成について


>  kunitsujiです。
>
> こんな感じで。OKですね。
>
> $start_day = "start_day <= DATE_FORMAT(CURRENT_TIMESTAMP(), '%Y-%m-%d %
> H:%i:%s')";
> $this->db->where($start_day);
> $query = $this->db->get('c_access_log_id');
>
>
>>
>>decoyさん、こんにちは。
>>自分active recorクラスを使わないので何とも言えませんが、
>>'%Y-%m-%d %H:%i:%s'が¥がついてしまうということですよね?
>>
>>$ymdstr = '%Y-%m-%d %H:%i:%s'
>>として
>>? で渡すのはむりですかね?w
>>やってみてませんが。。。。これからやってみますw
>>
>>
>>>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 mailing list
>>>Codei****@lists*****
>>>http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users
>>
>>_______________________________________________
>>Codeigniter-users mailing list
>>Codei****@lists*****
>>http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users
>
> _______________________________________________
> Codeigniter-users mailing list
> Codei****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/codeigniter-users 




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