在日期(日期)更改时添加新行-MySQL,PHP

在日期(日期)更改时添加新行-MySQL,PHP,php,mysql,date,Php,Mysql,Date,我需要一些支持,因为我不太擅长PHP和MySQL,就像本版中的所有内容:) 所以,先谢谢你 我使用PHP脚本存储来自外部解析XML提要的数据。 此脚本使用CRON作业每天更新两次MySQL数据库。 这是此类PHP脚本的一个片段: mysql_query("UPDATE my_table SET amount=$jackpot->amount WHERE gameId = '".$jackpot->gameId."'") or die(mysql_error()); 这将更新数据库中

我需要一些支持,因为我不太擅长PHP和MySQL,就像本版中的所有内容:) 所以,先谢谢你

我使用PHP脚本存储来自外部解析XML提要的数据。 此脚本使用CRON作业每天更新两次MySQL数据库。 这是此类PHP脚本的一个片段:

mysql_query("UPDATE my_table SET amount=$jackpot->amount WHERE gameId = '".$jackpot->gameId."'")
or die(mysql_error());
这将更新数据库中的一个表和一行。此表的结构如下(列):

gameId | gameName |金额|货币|日期

如果“日期”列为日期格式(dd/mm/yyyy hh:mm),则更新当前时间戳时的当前时间戳

我需要的是。。。是的,我需要每天两次更新这个表,但我还需要在日期更改时插入一个具有相同列的新行(每天,新的一天->新行)

我的想法是类似的,用两个词来说(没有编码):

我该怎么做? 我必须使用MySQL查询检查当前数据,然后通过PHP插入新行吗? 或者我可以用一堆PHP行跳过查询吗

对不起,我有点困惑。。。 任何帮助都将不胜感激


再次感谢大家

我建议保持简单:添加一个新的
dupedate
字段,只存储插入日期。在上面放上一个唯一的钥匙,那么这就是一个简单的问题:

INSERT INTO (gameID, gameName, ammount, currency, date, dupedate) VALUES (...)
ON DUPLICATE KEY UPDATE amount=xxx
如果“插入”与现有记录日期相同的记录,则会得到更新。如果是新的日期(例如“明天”),你会得到一张新的记录


这还有一个优点,即与最初的“获取/检查/更新|插入”版本不同,它不是一种赛马。这样一个过程可能会导致其他过程复制逻辑,并在您获取记录和执行插入/更新之间从您下方截取新记录。

我建议保持简单:添加一个新的
dupedate
字段以仅存储插入日期。在上面放上一个唯一的钥匙,那么这就是一个简单的问题:

INSERT INTO (gameID, gameName, ammount, currency, date, dupedate) VALUES (...)
ON DUPLICATE KEY UPDATE amount=xxx
如果“插入”与现有记录日期相同的记录,则会得到更新。如果是新的日期(例如“明天”),你会得到一张新的记录


这还有一个优点,即与最初的“获取/检查/更新|插入”版本不同,它不是一种赛马。这样一个过程可能会导致其他过程复制逻辑,并在获取记录和执行插入/更新之间从您的下方截取新记录。

如果我理解正确,您希望能够每天插入/更新两次数据(虽然次数不应该很重要)并以每个唯一日期的一行数据结束

如果您在
日期
列上创建一个唯一的索引,并使用查询语法,您可以在单个查询中实现这一点

INSERT INTO my_table (amount, currency, date) VALUES (....)
ON DUPLICATE KEY UPDATE amount = '....';

如果愿意,您可以轻松地增加列的值,而不是重新分配它们。为此,查询的更新部分如下:
update amount=amount+..

如果我理解正确,您希望能够每天插入/更新数据两次(尽管次数不重要)每个唯一的日期都有一行数据

如果您在
日期
列上创建一个唯一的索引,并使用查询语法,您可以在单个查询中实现这一点

INSERT INTO my_table (amount, currency, date) VALUES (....)
ON DUPLICATE KEY UPDATE amount = '....';

如果愿意,您可以轻松地增加列的值,而不是重新分配它们。为此,查询的更新部分将如下所示:
update amount=amount+..

您应该使用查询检查是否已经存在匹配的行,除非您绝对确定没有添加新游戏


如果您的脚本在凌晨1点和下午1点运行,而您仅在凌晨1点创建新行,则在凌晨2点添加新游戏(在外部xml、后端或两者中)将导致错误。

您应该使用查询检查是否已经存在匹配行,除非您绝对确定没有添加新游戏

如果您的脚本在凌晨1点和下午1点运行,而您仅在凌晨1点创建新行,则在凌晨2点添加新游戏(在外部xml、后端或两者中)将导致错误