Php 将datetime对象增加5分钟并添加到数据库

Php 将datetime对象增加5分钟并添加到数据库,php,mysql,datetime,Php,Mysql,Datetime,我正在尝试制作一个php脚本,它需要一个datetime,然后使用for循环将日期增加5分钟,然后将其添加到mysql数据库中。我的代码是: $minutes_to_add = 5; $time = new DateTime('2014-12-11 00:00:00'); for($i = 0; $i < 10; $i++){ $time->add(new DateInterval('PT' . $minutes_to_add . 'M')); $insert =

我正在尝试制作一个php脚本,它需要一个datetime,然后使用for循环将日期增加5分钟,然后将其添加到mysql数据库中。我的代码是:

$minutes_to_add = 5;
$time = new DateTime('2014-12-11 00:00:00');

for($i = 0; $i < 10; $i++){
    $time->add(new DateInterval('PT' . $minutes_to_add . 'M'));
    $insert = date_format($time, 'Y-m-d H:i:s');
    mysqli_query($conn, "INSERT INTO sensordata (GreenhouseID, Light, Earthmoisture, Waterlevel, Airparticles, CO2, RH, Temp, Dateandtime) VALUES (1,RAND() * 298 + 2,RAND() * 298 + 2,RAND() * 298 + 2,RAND() * 298 + 2,RAND() * 298 + 2,RAND() * 298 + 2,RAND() * 298 + 2, $insert");

}
echo json_encode($insert);

当我回显插入时,它看起来是正确的,我得到了正确格式的日期时间,但没有向数据库中添加任何内容,我不知道为什么。有什么想法吗?

我接受了乔恩·斯特林的建议,用一个事先准备好的语句替换了我的代码。最终的代码如下所示:

$minutes_to_add = 5;
$datetime = new DateTime('2014-12-11 00:00:00');

for($i = 0; $i < 10; $i++){
    $datetime->add(new DateInterval('PT' . $minutes_to_add . 'M'));
    $date = date_format($datetime, 'Y-m-d H:i:s');
    if($stmt = mysqli_prepare($conn, "INSERT INTO sensordata (GreenhouseID, Light, Earthmoisture, Waterlevel, Airparticles, CO2, RH, Temp, Dateandtime) VALUES (1,RAND() * 298 + 2,RAND() * 298 + 2,RAND() * 298 + 2,RAND() * 298 + 2,RAND() * 298 + 2,RAND() * 298 + 2,RAND() * 298 + 2, ?)")){
        mysqli_stmt_bind_param($stmt, "s", $date);
        mysqli_stmt_execute($stmt);
    }

}

您缺少用于关闭值部分OPS的。我添加了,但是我仍然有同样的问题,没有任何东西被添加到数据库中,然后检查并查看是否出现错误。另外,检查服务器错误日志,看看是否可以发现任何错误。哦,查询字符串中缺少$insert左右的引号。在这种情况下,您应该考虑使用准备好的语句,而不是直接将变量连接到查询中。