无法在MySQL中插入日期

时间:2012-08-22 02:07:06

标签: php mysql sql codeigniter activerecord

我正在尝试使用PHP(CI)将一些日期(给定日期,+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);

有趣的是,这会插入 nothing ,而不是0000-00-00

感谢任何输入!

1 个答案:

答案 0 :(得分: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
        );