我创建了一个php应用程序,可以为整个年份的给定员工创建记录。 我的应用需要以下输入: 我使用了以下代码。
<?php
$name=$_SESSION['name'];
$timeofdeparture="00-00-00";
$timeofattendance="00-00-00";
$absent="Absent";
$startdate = '2015-01-01';
$end_date ='2016-01-01';
include 'config.php';
while (strtotime($startdate) <= strtotime($end_date))
{
$flag=2;
$sql2="INSERT INTO attendance(emp, dateofattendance, status,flag,timeofattendance,timeofdeparture)VALUES('$name', '$startdate', '$absent','$flag','$timeofattendance','$timeofdeparture') ";
$result2 = $conn->query($sql2);
$startdate = date ("Y-m-d", strtotime("+1 day", strtotime($startdate)));
}
?>
但是这使得我的应用程序变慢,因为插入一年的所有记录需要花费很多时间。是否有任何有效的方法来优化此操作?我想在这里做的就是当管理员点击“添加用户”按钮然后必须创建他的一年记录。一年之后我可以再次使用这个脚本。或者我们可以优化此查询以插入记录长达3年? 提前致谢
答案 0 :(得分:0)
像这样使用
$sql2 =" INSERT INTO attendance(emp, dateofattendance, status,flag,timeofattendance,timeofdeparture)VALUES ";
$sql_values = '';
while (strtotime($startdate) <= strtotime($end_date))
{
$flag=2;
$sql_values .=" ('$name', '$startdate', '$absent','$flag','$timeofattendance','$timeofdeparture') ,";
$startdate = date ("Y-m-d", strtotime("+1 day", strtotime($startdate)));
}
$sql2 = $sql2.$sql_values;
if($sql_values){
$result2 = $conn->query($sql2);
}