我想每天执行此功能。我使用Xampp进行开发和使用CodeIgniter作为使用php和mysql的框架进行测试。
此代码可以正常填充当前日期的数据库表,但我想自动执行事件而不是触发器
有人告诉我使用CRON,但我不知道如何创建文件以及放置它们的位置,因为我使用的是Windows托管
function create_users_records(){
//get the user's IDs and number
$this->db->select('id');
$query = $this->db->get('users');
$number_of_employees = $query->num_rows();
echo "number of employees is: ".$number_of_employees."<br>";
for ($i = 0; $i < $number_of_employees; $i++) {
$row = $query->row($i);
echo $row->id ."<br>";
//date and time now
$time = time();
//date format
$datestring = "%Y-%m-%d";
$data = array(
'Attendence_date_daily' => mdate($datestring, $time),
'Check_in_time' => null,
'Check_out_time' => null,
'Attendence_status' => null,
'Employee_comment' =>null,
'Deducted_today' => 0,
'user_id' => $row->id
);
$this->db->insert('daily_attendence_record', $data);
}
}
我正在创建一个考勤系统,我需要在午夜为所有用户创建日常记录,以便他们可以在此之前办理入住/退房手续并记录他们的假期和缺席。
答案 0 :(得分:0)
如果您使用Windows进行托管,则可以在服务器上设置计划任务,而不是使用CRON。
将上面的函数放到控制器的某个地方,并将其设置为可以通过URL调用它。您可以使用routing.php
中的config
将http://example.com/update
之类的内容映射到该函数。
尝试使用here概述的解决方案,该解决方案应该执行您安排任务所需的操作。
答案 1 :(得分:0)
点击此页面:http://www.adminschoice.com/crontab-quick-reference
您可以为日常执行创建一个cron脚本。
示例:
30 18 * * * php /home/someuser/tmp/yourscript.php
答案 2 :(得分:0)
我通过以下方式解决了在预定时间执行功能的问题: 首先:
在Codeigniter中创建一个普通的控制器并放入代码和 你希望执行的功能。
在控制器的索引方法中调用函数 所以它可以在解析和调用php文件时自动执行。 现在你有一个可执行的php文件,在运行时它会做你想要的但只有一次,并且在手动调用时。
第二步是从cmd:
运行此代码打开.bat文件并输入以下代码
cd c:\xampp\htdocs\name_of_your_project\
&lt; -t这是控制器所在的路径。
php function_name.php name_of_the_controller
PAUSE
“暂停”是显示cmd而不是自动关闭它,如果您想要检查应该处理并正确回显的错误按摩,这将非常有用。
例如:
cd c:\xampp\htdocs\Myproject\
php index.php cron
PAUSE
现在,你有一个文件,点击后将执行该功能。 只需在Windows中使用计划任务就可以在需要时执行它。
'index'是您要执行的函数的名称和'cron' 你可以在这里问我,我会尽力帮助你。 祝你的项目好运