0

Вопрос по mysql, date, php – PHP / PDO вставить текущую дату плюс один месяц в MYSQL

Я пытаюсь добавить текущую дату (не время, если у меня есть возможность), а также дату месяца спустя в мою базу данных 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));

Я не совсем уверен, почему этот синтаксис не работает.

Моя цель состоит в том, чтобы иметь возможность сравнивать даты при выборе строк, чтобы вернуть строки, у которых истек срок действия в течение недели после текущей даты.

  • Мне действительно интересно, почему люди голосуют за подобные вопросы. И они иногда не дают оснований для отрицательного голосования, а также не отвечают. Опущенные избиратели говорят нам, что не так с этим вопросом?

    от Musa
  • 6

    Процитируйте ваши операторы MySQL, они являются строками в PHP:

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