php - 日期(天)更改时添加新行 - MySQL、PHP

标签 php mysql date

我需要一些支持,因为我对 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/

相关文章:

php - 通过 sftp 使用 curl 下载文件

PHP call_user_func 命名空间别名

php - 如何在textarea中替换\r\n

mysql - 如何在MySQL中显示从未批准过订单的员工

html - 如何允许用户在 Rails 中提交自定义电子邮件模板?

php - 查找正在进行和即将举办的事件

php - Laravel 5.2 缓存标签不工作

php - 这种关系方法是否可扩展?

python - panda dataframe日期列中日期格式转换不一致

java - JDatePicker Java中的日期差异