【问题标题】:update mysql table records automatically every first of year using laravel 4.2使用 laravel 4.2 每年第一年自动更新 mysql 表记录
【发布时间】:2015-11-16 11:53:26
【问题描述】:

我有用户表有名为 balance 的列我想为所有用户自动更新余额列首先每年 + 值 (30),因为每个用户每年都会在第一年获得 30 积分我如何进行此查询并进行它每年都会自动运行一次

我的桌子样本

id 名称平衡

1 个名字 1 20

2 名称2 31

2 名称3 14

【问题讨论】:

  • 我会使用命令 laravel.com/docs/4.2/commands 并与您服务器的 cron 管理器一起安排此操作。
  • 你能添加更多关于如何制作的细节吗?

标签: mysql laravel laravel-4 auto-update


【解决方案1】:

老实说,我会把 laravel 完全排除在外。使用 mysql 的内置 event scheduler 或使用您操作系统的类似功能(例如 cron 或 windows 任务调度程序)来安排 sql 脚本的运行。如果你使用OS事件调度器,那么使用mysql的command line client来执行sql脚本。

根据您的业务需求,您可能希望每天运行脚本来更新一年前注册的余额。

你的 sql 会像下面这样:

update table set balance=balance+30 where field_for_creation_date=curdate() - interval 1 year

我假设您将计算 1 年的注册/激活日期存储在一个字段中,我在上面的查询中将其命名为 field_for_creation_date。

【讨论】:

  • 我在 centos 操作系统上使用 c-panel 我如何在这个环境中制作它以及如何在本地主机上测试它?我也想知道是否有任何方法可以在我的代码上实现
  • 如何在 cpanel 中管理 cron 作业:documentation.cpanel.net/display/ALD/Cron+Jobs
  • 如何在 cpanel 中配置 cron 作业:documentation.cpanel.net/display/ALD/Configure+cPanel+Cron+Jobs
  • 我以前从未使用过 laravel cron,你能告诉我我在哪里找到我的项目中的 cron 文件以及将我的查询放在哪里吗?我可以使用 elequant 查询吗?比如“ $user->update(['balance', $user->balance + 30]);”
【解决方案2】:

我通过使用 c-panel Cron Jobs 解决了这个问题我创建了用于连接数据库并更新记录的 php 脚本,然后我将此脚本路径放在 Cron Jobs 命令中,如下所示

php -f /script-path/scriptName.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 1970-01-01
    • 2015-12-17
    • 2012-07-18
    • 2022-01-24
    相关资源
    最近更新 更多