2012-08-22 61 views
0

我試圖用PHP(CI)在MySQL中插入一些日期(給定日期,+1天和+1月)。無法將日期插入MySQL

這裏是我的CI活動記錄代碼:

變量$last_period_end回報2012-02-20,它試圖將其插入到該字段爲MySQL的DATE格式。

$data = array(
      'user_id'  => $user_id, 
      'period_start' => "DATE_ADD($last_period_end, INTERVAL 1 DAY)", 
      'period_end' => "DATE_ADD($last_period_end, INTERVAL 1 MONTH)", 
      'cost'   => $cost 
     ); 

    $result = $this->db->insert('invoices', $data); 

    if ($result) 
     return true; 
    else 
     return false; 

這插入0000-00-00而不是我想要的。

我也曾嘗試純SQL:

INSERT INTO betterbill.invoices (user_id, period_start, period_end, cost) 
VALUES(18, DATE_ADD(2012-02-20, INTERVAL 1 DAY), DATE_ADD(2012-02-20, INTERVAL 1 MONTH), 100.05); 

有趣的是這將插入沒什麼,而不是0000-00-00

任何輸入的感謝!

+1

你需要在日期周圍單引號;他們是字符串文字。沒有這個,你告訴它插入2012-02-20這是1990年......因爲那些是數字和減號。 –

回答

2

您錯過了日期字符串的報價'

$data = array(
      'user_id'  => $user_id, 
      'period_start' => "DATE_ADD('$last_period_end', INTERVAL 1 DAY)", 
      'period_end' => "DATE_ADD('$last_period_end', INTERVAL 1 MONTH)", 
      'cost'   => $cost 
     ); 
+0

非常感謝。現在一切都很好!當時我甚至沒有想到。 – Zen