Php 在给定时间段后禁用mysql上的编辑

Php 在给定时间段后禁用mysql上的编辑,php,mysql,Php,Mysql,我使用phprunner开发了一个数据捕获表单,数据在mysql数据库上更新 由于输入过程中的输入错误,我只允许用户编辑自己的数据,并进一步将其限制为一个字段(自由文本和容易出错的字段) 是否可以在给定时间段(例如1天)后锁定记录。 这里的目标是为用户的“编辑”能力设置一种到期日,这样从存储记录中提取的历史报告就可以始终保持不变 如果是这样,如何实现这一目标 谢谢您可以在表中设置一个日期输入列(使用NOW()表示当前时间),并在用户尝试更新帖子时进行检查。用于计算时差。创建一个日期创建列,然后检

我使用phprunner开发了一个数据捕获表单,数据在mysql数据库上更新

由于输入过程中的输入错误,我只允许用户编辑自己的数据,并进一步将其限制为一个字段(自由文本和容易出错的字段)

是否可以在给定时间段(例如1天)后锁定记录。
这里的目标是为用户的“编辑”能力设置一种到期日,这样从存储记录中提取的历史报告就可以始终保持不变

如果是这样,如何实现这一目标


谢谢

您可以在表中设置一个日期输入列(使用NOW()表示当前时间),并在用户尝试更新帖子时进行检查。用于计算时差。

创建一个日期创建列,然后检查该日期与今天日期之间的日期差。如果大于1,则可以使用php或其他方法锁定它:

if ($timeDiff greater than a day){
    disable edit button
else
    enable edit button
}

简单的方法是首先简单地检查记录是否可以编辑。e、 g.构建编辑表单时,检查记录创建的时间。如果>1天,则输出“抱歉,编辑已禁用”,而不是表单

如果您的用户相对聪明,可以伪造表单并以任何方式提交数据,那么您还可以在sql
update
级别进行过滤,以禁止更改:

UPDATE yourtable
SET ...
WHERE (id = $id) AND ((record_created + interval 1 day) > now())

这只会阻止数据库更新,但不会隐藏用户“更新/提交”按钮

更新表
设置
其中上次更新
要向用户隐藏按钮,您可以(在前端)

选择
身份证件
如果(上次更新
谢谢Steven,我正在使用时间戳字段捕获日期。我是mysql的新手,所以请原谅我,如果这是显而易见的…我不熟悉mysql的方式来做这件事。我只想用PHP检查一下。非常感谢……这太棒了……我会尝试一下。谢谢Marc B。我会使用PHP和mysql过滤器,如前所述
 UPDATE table
    SET  ...
 where last_update < date_sub(now(), interval 1 day)
      And id = $id
SELECT 
    id, 
    IF(last_update < date_sub(now(), interval 1 day), 1, 0) as show_update_button
    .....