簡體   English   中英

如何設置每日php函數或mysql查詢

[英]how to set up daily php functions or mysql queries

我已經想了一段時間了。 如果我想對所有或許多表進行每周備份,這些表存儲的值每天都在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值更新數據庫。

如果您使用的是Linux / UNIX服務器,則可以設置一個“ cron作業”,該作業可以在指定的時間間隔內運行您喜歡的任何命令。 該命令可以是使用命令行PHP解釋器執行的PHP腳本。

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

在* 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM