我需要一些支持,因为我对 PHP 和 MySQL 的掌握程度不如本版 block 中的所有人:) 所以,提前致谢。
我正在使用 PHP 脚本存储来自外部已解析 XML 提要的数据。 此脚本每天两次使用 CRON 作业更新 MySQL 数据库。 这是此类 PHP 脚本的片段:
mysql_query("UPDATE my_table SET amount=$jackpot->amount WHERE gameId = '".$jackpot->gameId."'")
or die(mysql_error());
这更新了我数据库中的一个表和一行。该表的结构如下(列):
游戏编号 |游戏名称 |金额 |货币 |日期
其中“日期”列采用 DATE 格式 (dd/mm/yyyy hh:mm),CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP。
我需要的...是的,我需要每天两次更新此表,但我还需要在 DATE 更改时插入具有相同列的新行(每天,新的一天->新行)。
我在想类似的事情,用两个词(没有编码):
if today --> update rows
elseif date change (another day, so "tomorrow") --> INSERT new row with updated data (collected from the XML feed)
我该怎么做? 我是否必须使用 MySQL 查询检查当前数据,然后通过 PHP 插入新行? 或者我可以用一堆 PHP 行跳过查询吗?
对不起,但我有点困惑...... 非常感谢任何帮助!
再次感谢大家!
最佳答案
我建议保持简单:添加一个新的 dupedate
字段以仅存储插入日期。在上面放一个唯一的 key ,然后这是一个简单的问题:
INSERT INTO (gameID, gameName, ammount, currency, date, dupedate) VALUES (...)
ON DUPLICATE KEY UPDATE amount=xxx
如果您“插入”一条与现有记录具有相同日期的记录,则会得到更新。如果是新日期(例如“明天”),您将获得新记录。
这还有一个好处,即不会像您的初始“获取/检查/更新|插入”版本那样过于繁琐。这样的过程可能会导致某些其他过程可能会复制逻辑并在您获取记录和执行插入/更新之间从您的下方窃取您的新记录。
关于php - 日期(天)更改时添加新行 - MySQL、PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14381387/