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

时间:2012-11-05 21:37:26

标签: php mysql

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

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

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

如果是这样,怎么能实现呢?

由于

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

创建日期创建列,然后检查该日期与今天日期之间的日期。如果它大于1,那么你可以使用php或其他东西锁定它:

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

答案 2 :(得分:0)

简单的方法是简单地检查记录是否可以首先编辑。例如在构建编辑表单时,请检查记录创建的时间。如果是> 1天,然后输出“抱歉,编辑禁用”而不是表单。

如果你有相对聪明的用户可以伪装表单并提交数据,那么你也可以在sql update级别进行过滤以禁止更改:

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

答案 3 :(得分:0)

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

 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
    .....