每天在php和codeigniter中使用Xampp

时间:2015-07-07 22:30:24

标签: php mysql codeigniter cron

我想每天执行此功能。我使用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); 
         }

}      

我正在创建一个考勤系统,我需要在午夜为所有用户创建日常记录,以便他们可以在此之前办理入住/退房手续并记录他们的假期和缺席。

3 个答案:

答案 0 :(得分:0)

如果您使用Windows进行托管,则可以在服务器上设置计划任务,而不是使用CRON。

将上面的函数放到控制器的某个地方,并将其设置为可以通过URL调用它。您可以使用routing.php中的confighttp://example.com/update之类的内容映射到该函数。

尝试使用here概述的解决方案,该解决方案应该执行您安排任务所需的操作。

答案 1 :(得分:0)

点击此页面:http://www.adminschoice.com/crontab-quick-reference

您可以为日常执行创建一个cron脚本。

示例:

30     18     *     *     *  php /home/someuser/tmp/yourscript.php

答案 2 :(得分:0)

我通过以下方式解决了在预定时间执行功能的问题: 首先:

  1. 在Codeigniter中创建一个普通的控制器并放入代码和 你希望执行的功能。

  2. 在控制器的索引方法中调用函数 所以它可以在解析和调用php文件时自动执行。 现在你有一个可执行的php文件,在运行时它会做你想要的但只有一次,并且在手动调用时。

  3. 第二步是从cmd:

    运行此代码
    1. 创建(.bat文件)您想要的任何地方和名称(不必在项目文件夹中,您可以将它放在桌面或文档中,以便您可以单击它并稍后进行测试),名称也不重要。
    2. 打开.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' 你可以在这里问我,我会尽力帮助你。 祝你的项目好运