2016-07-29 71 views
0

這是我的模型的查詢使用的日期當前日期添加功能笨

public function input_leave($effectivity){ 

    $input = array('ID_NUM' => $this->input->post('ID_NUM'), 
        'SOLO_P' => $this->input->post('SOLO_P'), 
        'DATE_ENTITLED' => date("Y-m-d"), 
        'EFFECTIVITY' => DATE_ADD(now("Y-m-d") ,INTERVAL .$effectivity. MONTH) 
        ); 
    $insert = $this->db->insert('tbl_leave',$input); 
    return $insert; 
} 

我想是做的是DATE_ADD(**the current date** ,INTERVAL .$effectivity. MONTH)

,但是當我現在()使用它不工作,我仍然不完全理解DATE_ADD函數,所以有人可以解釋錯誤是什麼,解決方案是什麼。謝謝。

+0

'NOW()'不採取datetime格式字符串 –

回答

5

你在混淆MySQL的NOW()函數和PHP的date()函數。 MySQL的NOW()不帶任何參數:

$input = array('ID_NUM' => $this->input->post('ID_NUM'), 
        'SOLO_P' => $this->input->post('SOLO_P'), 
        'DATE_ENTITLED' => date("Y-m-d"), 
        'EFFECTIVITY' => DATE_ADD(NOW() ,INTERVAL .$effectivity. MONTH) 
        ); 
    $insert = $this->db->insert('tbl_leave',$input); 
    return $insert; 
+0

所以我應該怎麼做的PHP這樣做呢? –

+0

我也試過CURDATE() –

+0

你可能想要回應那個查詢並驗證它是你所期待的。然後從命令行或像phpmyadmin這樣的工具運行它,看看它是如何運行的。 –

0

你也可以像這樣

$input = array('ID_NUM' => $this->input->post('ID_NUM'), 
       'SOLO_P' => $this->input->post('SOLO_P'), 
       'DATE_ENTITLED' => date("Y-m-d"), 
       'EFFECTIVITY' => date('Y-m-d', strtotime("+".$effectivity." months")) 
       ); 
$insert = $this->db->insert('tbl_leave',$input); 
return $insert;