我希望将数据插入到具有这些列的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);
}
答案 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
希望这会有所帮助。