[英]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腳本。
在* 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.