【发布时间】: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 是的,这对我来说是个好方法。谢谢你的帮助。