如何设置每日php函数或mysql查询

时间:2010-08-19 00:22:12

标签: php function mysql backup

我现在想知道如何做到这一点。如果我想每周备份我的所有或许多表,这些表存储了每天在mysql中更改的值。我还想用php执行日常功能,更新我的数据库中的更新值。

我在考虑进行股票投资功能。我将虚构数据作为各种股票的价值,每个股票每天随机变化。

股票价格曲线的最后9天可能是这样的。

CREATE TABLE `stocks` (
  `id` int(11) NOT NULL auto_increment,
  `name` varchar(40) NOT NULL default '', 

  `day_1` varchar(40) NOT NULL default '', 
  `day_2` varchar(40) NOT NULL default '',  
  `day_3` varchar(40) NOT NULL default '', 
  `day_4` varchar(40) NOT NULL default '', 
  `day_5` varchar(40) NOT NULL default '',  
  `day_6` varchar(40) NOT NULL default '', 
  `day_7` varchar(40) NOT NULL default '', 
  `day_8` varchar(40) NOT NULL default '', 
  `day_9` varchar(40) NOT NULL default '', 

如果我可以每天执行一次PHP函数,它会生成最近9天值的数组。然后只需更改day_1值并使用array_push($array, "new_stock_price");,然后使用新的last_9_days值更新数据库。

3 个答案:

答案 0 :(得分:5)

如果您使用的是Linux / UNIX服务器,则可以设置“cron作业”,它可以按指定的时间间隔运行您喜欢的任何命令。此命令可以是使用命令行PHP解释器执行的PHP脚本。)

http://en.wikipedia.org/wiki/Cron

答案 1 :(得分:1)

在* nix系统上,使用CRON作业。在Windows上,它是计划任务...要么在任何(或特定)日的某个时间执行脚本。

我建议更好的桌面设计:

DROP TABLE IF EXISTS `example`.`stocks`;
CREATE TABLE  `example`.`stocks` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `name` varchar(45) NOT NULL default '',
  `stock_value` varchar(40) NOT NULL default '',
  `created_date` datetime NOT NULL default CURRENT_TIMESTAMP,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

这样,如果要查看给定股票名称的最后9个值,请使用:

  SELECT s.name,
         s.value,
         s.created_date
    FROM STOCKS s
   WHERE s.name = ?
ORDER BY s.created_date DESC
   LIMIT 9

答案 2 :(得分:0)