我試圖向我的一個表添加記錄。根據輸入的信息,其中一列應填寫未來日期,有時一個月,有時一年。動態CURDATE和INSERT INTO的問題
我正在使用CURDATE()+ INTERVAL 1個月/年來獲取未來日期。
但是,添加記錄時,日期顯示爲0000-00-00。
這是我使用的代碼:
if ($_POST['type'] == "month") {
$expire = 'CURDATE() + INTERVAL 1 MONTH';
} else if ($_POST['type'] == "year") {
$expire = 'CURDATE() + INTERVAL 1 YEAR';
}
$insertSQL = 'INSERT INTO users (dateAdded, name, email, promoEndDate) VALUES (now(), :name, :email, :expire)';
$rsInsert = $pdo->prepare($insertSQL);
$rsInsert->bindParam(':name', $_POST['name'], PDO::PARAM_STR);
$rsInsert->bindParam(':email', $_POST['email'], PDO::PARAM_STR);
$rsInsert->bindParam(':expire', $expire, PDO::PARAM_STR);
$rsInsert->execute();
我以前用過CURDATE沒有約束力,它一直
,但我需要的時間間隔取決於用戶的選擇。我也嘗試使用$ rsInsert-> bindValue(':expire',$ expire,PDO :: PARAM_STR),但我得到了相同的結果。
任何幫助,將不勝感激。
謝謝。
準備好的陳述用於準備值。所以你的'CURDATE()+ INTERVAL 1 MONTH'被認爲是一個字符串,而不是mysql表達式。 –
謝謝,我刪除了bindParam行並將$ expire直接添加到查詢字符串中。有效。 – cesarcarlos
現在你可以回答你的問題。 –