使用增量日期和天数在PHP中插入SQL数据库

时间:2017-03-02 13:35:38

标签: php mysql date

我希望将数据插入到具有这些列的SQL数据库中。

id, date, day, Month, Projection, RecommendedStaff, StaffWages, TotalWages, Actual

我发现insert into语句在使用它作为查询输入常量时有效,但我找不到增加这些值的语法并使其成功运行。 ID是自动增量的,因此只是试图了解如何增加日期和日期值,这没有问题。

例如:

Date / Day / Month

2017-03-20 / Monday / March

INSERT QUERY COMPLETED

2017-03-21 / Tuesday / March 

或者每月更改

2017-04-01 / Saturday / April

我希望能够根据当前日期增加一段时间,因此我的猜测是循环,变量为天数。

我目前的递增值的理论,但它没有插入mySQL数据库:

$date = date("Y-m-d");
    $sql = "INSERT INTO `Test` (date) VALUES (DATE_ADD(NOW(), INTERVAL 1 DAY))";

    if (mysqli_multi_query($conn, $sql)) {
        echo "New records created successfully";
    } else {
        echo "Error: " . $sql . "<br>" . mysqli_error($conn);
    }

2 个答案:

答案 0 :(得分:2)

这是一种PHP方式,您可以实现您想要的目标。

$fDate = $date->format("Y-m-d");
$date = '2017-03-02';

$begin = new DateTime($date);
$end = new DateTime(date('Y-m-d', strtotime($date . '+ 1 year'))); // you can change + 1 year to what you need

$interval = new DateInterval('P1D'); // one day
//$interval = new DateInterval('P1W'); // one week

$daterange = new DatePeriod($begin, $interval, $end);

foreach ($daterange as $date) { // loop through dates

    $fDate = $date->format("Y-m-d"); // format date to the format you need
    $fDay = $date->format("l"); // (lower case L) e.g. Sunday
    $fMonth = $date->format("F"); // e.g. January

    $sql = "INSERT INTO `Test` (`date`, `day`, `Month`, Projection, RecommendedStaff, StaffWages, TotalWages, Actual) VALUES ('{$fDate}','{$fDay}','{$fMonth}',.....)";

    if (mysqli_query($conn, $sql)) {
        echo "New records created successfully";
    } else {
        echo "Error: " . $sql . "<br>" . mysqli_error($conn);
    }
}

您可以看到here如何使用strtotime()函数。

更新再次完整阅读问题后;)

我改变循环也给你日和月。 您可以将日期格式化为您需要的任何内容。有关可传递给日期函数的参数,请参阅here

答案 1 :(得分:0)

您可以创建一个过程并使用该循环来插入多个记录

如下面的代码所示,如​​果您要从当前日期插入100天的记录,只需将count_1变量10替换为100,它将迭代您的循环{{1 } {times}为100制作entry

100 days

希望这会有所帮助。