0

現在の日付(オプションがある場合は時間ではありません)と1か月後の日付をMYSQLデータベースに追加しようとしていますが、次のエラーが発生し続けます:

Parse error: syntax error, unexpected T_LNUMBER in *myfile* on line 45

データを挿入する私の機能は次のとおりです。

function add_zipcode($zip, $adminID, $email)
{
    global $db;
    $query = '

        INSERT INTO zip_owners (zip, email, adminID, started, transferred, expires)
        VALUES (:zip, :email, :adminID, :started, :transferred, :expires)';
    try{
        $statement = $db->prepare($query);
        $statement->bindValue(':zip', $zip);
        $statement->bindValue(':email', $email);
        $statement->bindValue(':adminID', $adminID);
        $statement->bindValue(':started', now());

        $statement->bindValue(':transferred', now());
        $statement->bindValue(':expires', DATE_ADD(now(), INTERVAL 1 MONTH));
        $statement->execute();
        $statement->closeCursor();
    }
    catch (PDOexception $e) 
    {
        $error_message = $e->getMessage();
        echo "<p>Database Error: $error_message </p>";
        exit();
    }
}   

問題の行は次のとおりです。

$statement->bindValue(':expires', DATE_ADD(now(), INTERVAL 1 MONTH));

その構文が機能しない理由はよくわかりません。

私の目標は、行を選択するときに日付を比較して、現在の日付から 1 週間以内に有効期限が切れている行を返すことです。

4

1 に答える 1

7

MySQL ステートメントを引用します。これらは PHP の文字列です。

$statement->bindValue(':expires', 'DATE_ADD(now(), INTERVAL 1 MONTH)');
于 2012-04-09T00:47:36.763 に答える