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

发布于 2024-09-15 04:03:33 字数 851 浏览 6 评论 0原文

我想知道已经有一段时间了。如果我想每周备份所有或许多表,这些表存储每天在 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 值更新数据库。

I have wondered for a while now how to this. If I want to take weekly backups of all or many of my tables that stores values that changes every day in mysql. I also want to execute daily functions with php that update update values in my db.

I was thinking of making a stock investing function. Where I have fictional data as the value for various stocks, a value that changes randomly every day for every stock.

Maybe something like this for the last 9 days of the stock price curve.

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 '', 

if I could execute a php function once a day that made an array of the last 9 days of values. Then just change the day_1 value and use array_push($array, "new_stock_price"); then update the db with the new last_9_days values.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

紫瑟鸿黎 2024-09-22 04:03:33

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

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

If you're on a Linux / UNIX server, then you can set up a "cron job", which can run any command you like at a specified interval. This command could be a PHP script executed using the command line PHP interpreter).

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

毁我热情 2024-09-22 04:03:33

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

On a *nix system, use a CRON job. On Windows, it's Scheduled Task... Either will execute a script at a given time on any (or a specific) day.

I'd recommend a better table design:

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;

This way, if you want to see the last 9 values for a given stock name, use:

  SELECT s.name,
         s.value,
         s.created_date
    FROM STOCKS s
   WHERE s.name = ?
ORDER BY s.created_date DESC
   LIMIT 9
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文