mk_5884 Programming

自分で調べたIT関連のことなどを書いています

quoteではNOW() とか使えない

こんなような処理が動いている場合、quoteしちゃってるので文字列のNOW()が入ってしまい

エラーになる。正確には「0000-00-00 00:00:00」がはいってしまう。

 

if ($now) {

    $startDate = "NOW()";

} else {

    $startDate = "DATE_FORMAT(ADDDATE(CURDATE(), INTERVAL 1 MONTH), '%Y-%m-01')";

}

 

$sql = sprintf(

        "

        INSERT INTO table (

       start_date ,

        )

        VALUES (

        %s

        )"

        ,$this->_DB->quote($startDate)

);

 $this->_DB->query($sql);

 

なので、こーゆー時は

 

$this->_DB->quote($startDate)

 

ではなく

 

$startDate

 

でやること。