我正在尝试在我的数据库中插入一个新行,其中包含一个日期和相同的日期加上 1 周。
我在php中使用PDO,不知道是否相关。
这是失败的代码:
$stmtEncInsert = $db->prepare("INSERT INTO test
(id_Event, NIF, name , description, image, start_date, end_date)
VALUES (:idOfEvent, :NIF, :name, :description, :image, :startDate, DATE_ADD(:date_end,INTERVAL 1 WEEK)
)");
$stmtEncInsert->execute(array(':idOfEvent' => $idOfEvent, ':NIF'=> $NIF, ':name' => $resEnc['name'], ':description' => $resEnc['description'],
':image' => $resEnc['image'], ':startDate' => $date_end, ':date_end' => $date_end));
我从其他查询中获得了一些数据(例如:$resEnc['..']),但所有数据都正常。我试图在一个文件中打印所有数据并且它们都很好,它们存在。
问题是最后一个字段(end_date)总是给出错误,总是说:你不能把这个字段留空......
我认为这是 DATE_ADD 左右的问题,但我没有找到与此相关的任何内容。
我测试了删除 DATE_ADD 并仅使用 current_date 并且它可以工作,所以我想这就是问题所在。
任何想法?
我使用 MySQL 作为引擎
这是给定异常的输出:
Integrity constraint violation: 1048 Column 'end_date' cannot be null
$date_end 包含 0000-00-00 它是一个有效的日期,并且字段是从另一个查询中从 DB 获取的 DATE 类型