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 に答える