在日期(日期)更改时添加新行-MySQL,PHP
我需要一些支持,因为我不太擅长PHP和MySQL,就像本版中的所有内容:) 所以,先谢谢你 我使用PHP脚本存储来自外部解析XML提要的数据。 此脚本使用CRON作业每天更新两次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()); 这将更新数据库中
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、后端或两者中)将导致错误