0

我正在尝试使用 PHP (CI) 将一些日期(给定日期、+1 天和 +1 个月)插入 MySQL。

这是我的 CI 活动记录代码:

变量$last_period_end返回2012-02-20,它试图将其插入的字段是 MySQLDATE格式。

$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

任何输入表示赞赏!

4

1 回答 1

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
        );
于 2012-08-22T02:08:55.707 回答