【问题标题】:Automatically insert row to MySQL after 60 seconds using PHP使用 PHP 在 60 秒后自动将行插入 MySQL
【发布时间】:2018-10-10 13:02:09
【问题描述】:

我正在寻找一种自动将行插入 MySQL 的方法。目前我使用 PHP Cron 来执行此操作,但在 MySQL 中的值看起来并不完美 - 下面的照片。

我应该怎么做才能清楚地得到 date_added 值,例如:

2018-04-30 13:50:00
2018-04-30 13:51:00
2018-04-30 13:52:00
2018-04-30 13:53:00
2018-04-30 13:54:00
2018-04-30 13:55:00
2018-04-30 13:56:00
2018-04-30 13:57:00

我想这样做是因为进行分析并删除所有空数据(如果存在)对我来说很重要。下面的脚本是用 php 制作的 60 秒 cron。

$date = date('Y-m-d H:i:s');

/* Define functions */
function write_cron($timestamp, $cron_name, $var_name) {
    $filename = realpath(dirname(__FILE__)).'/times/'.$cron_name.'.php';
    $content = file_put_contents($filename, '<? $'.$var_name.'[\'time\'] = \''.$timestamp.'\'; ?>');

    $return = true;
    if (!$content) {
        die('<center><b>System ERROR</b><br /><i>system/cron/times/'.$cron_name.'.php</i> must be writable (change permissions to 777)</center>');
        $return = false;
    }
    return $return;
}

/* Times */
$timestamp = time();
$daily_time = strtotime(date('j F Y'));

$realPath = realpath(dirname(__FILE__));
if (!is_writable($realPath.'/times')) {
    die('<center><b>System ERROR</b><br /><i>system/cron/times/</i> directory must be writable (change permissions to 777)</center>');
}

if (file_exists($realPath.'/times/5min_cron.php')) {
    include($realPath.'/times/5min_cron.php');
}

if ($cron_5min['time'] <= ($timestamp-60)) {
    $write = write_cron($timestamp, '5min_cron', 'cron_5min');
    if ($write) {
    $db->Query("INSERT INTO `m_z_analytics_empty` (`coins`, `1_min`, `1_day`, `date_added`) VALUES ('0.00', '1', '0', '".$date."')");
    }
}

5min_cron.php

<? $cron_5min['time'] = '1514768460'; ?>

【问题讨论】:

  • 您可以在 MySQL 中安排一个过程定期运行 - stackoverflow.com/questions/6560639/…
  • 在 crontab 里面,你可以放 * * * * * 并在 php 脚本中插入相关部分。它将每分钟执行一次插入操作。
  • 你为什么要这样做?!?!
  • 你能告诉我们你的 crontab 吗?在你的服务器上运行crontab -l
  • @Kickstart 是的,这对我来说是个好方法。谢谢你的帮助。

标签: php mysql cron


【解决方案1】:

改变

$date = date('Y-m-d H:i:s');

进入

$date = date('Y-m-d H:i:00');

【讨论】:

  • 很好,但我不知道为什么 Cron 做得不清楚?我的意思是 2018-04-30 13:53:00 并在 2-3 分钟后执行。是服务器响应问题还是我的脚本有什么问题?
  • "很好,但我不知道为什么 Cron 做得不清楚?"我猜想配置为每分钟运行一次的 cronjob 可能会在该分钟内的 1 秒到 59 秒之间执行。
猜你喜欢
  • 1970-01-01
  • 2016-12-16
  • 2018-06-23
  • 1970-01-01
  • 1970-01-01
  • 2016-09-19
  • 1970-01-01
  • 2012-09-27
  • 1970-01-01
相关资源
最近更新 更多