我正在尝试构建一个用户可以在一个月内每天插入数据的应用程序。 要做到这一点,我需要让用户创建某个月的所有日子(例如:当月)。
点击一个按钮,我希望它获得当前月份,然后使用该数据获取所有日期,并为每个月制作SQL插入内容。
例如:
$monthname=date('F');
$monthnumber=date('m');
$getyear=date('Y');
Loop this until it has inserted all days of $monthnumber:
INSERT INTO $monthdatadays (id, dayname, daynumber, monthname, $monthnumber, year, data1, data2) VALUES ('', '$dayname', 'day1', '$monthname', '$monthnumber', '$getyear', '$somedata', '$somedata2')
INSERT INTO $monthdatadays (id, dayname, daynumber, monthname, $monthnumber, year, data1, data2) VALUES ('', '$dayname', 'day2', '$monthname', '$monthnumber', '$getyear', '$somedata', '$somedata2')
INSERT INTO $monthdatadays (id, dayname, daynumber, monthname, $monthnumber, year, data1, data2) VALUES ('', '$dayname', 'day3', '$monthname', '$monthnumber', '$getyear', '$somedata', '$somedata2')
Until the end of the month, but then months do have different amount of days.
我如何使用这样的准备语句来实现这一目标:
if($exampleps= $mysqli->prepare("INSERT INTO $pstable(id, name, summary, full, closedopen, createdby, createdat, editedby, editedat, date, time)VALUES('', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"))
{
$exampleps -> bind_param("ssssssssss", $name, $summary, $full, $status, $createdby, $createdat, $editedby, $editedat, $date, $time);
$exampleps -> execute();
$exampleps -> close();
}
答案 0 :(得分:0)
您可以使用MySQL NOW()函数返回当前日期和时间。
<强> E.g。强>
mysqli_query("INSERT INTO users (first, last, date_time) VALUES ('$first', '$last', now())");
您可以申请
$mysqli->prepare("INSERT INTO $pstable(id, name, summary, full, closedopen, createdby, createdat, editedby, editedat, date, time) VALUES('', ?, ?, ?, ?, ?, now(), ?, now(), CURDATE(),CURTIME())");
答案 1 :(得分:0)
你需要每天循环。您可以使用DatePeriod
。例如:
// setup dates
$begin = new DateTime();
$end = new DateTime();
$begin->modify('first day of this month');
$end->modify('last day of this month');
$interval = new DateInterval('P1D'); // 1 day interval
$range = new DatePeriod($begin, $interval, $end);
$mysqli = new mysqli('localhost', 'username', 'password', 'db');
$sql = "INSERT INTO $monthdatadays (id, dayname, daynumber, monthname, $monthnumber, year, data1, data2) VALUES ('', ?, ?, ?, ?, ?, ?, ?)";
$stmt = $mysqli->prepare($sql);
foreach($range as $k => $date) {
$somedata = 'whatever';
$somedata2 = 'whatever';
$dayname = $date->format('l');
$day = 'day' . $date->format('j');
$monthname = $date->format('F');
$monthnumber = $date->format('n');
$year = $date->format('Y');
$stmt->bind_param('sssssss', $dayname, $day, $monthname, $monthnumber, $year, $somedata, $somedata2);
$stmt->execute();
}