Php 如何在一定时间内停止来自所有当前用户的DB输入

Php 如何在一定时间内停止来自所有当前用户的DB输入,php,mysql,sql,validation,Php,Mysql,Sql,Validation,因此,我正在制作一个php网站,有时需要管理员类型用户输入大数据。这种情况不会经常发生,只会在数据库中更新或添加某些数据时发生 在这段可能需要一两分钟的上传时间内,我不能让其他用户像平时一样尝试提取数据并对其进行操作,因为这可能会导致一些重大错误 一种解决方案是停止服务器一段时间,并将站点置于维护之下,以便管理员类型的用户在本地上传数据 然而,网站上一次的用户不会超过1-2个,而且这些更新时间短(1-2分钟)且不频繁。这使得这种情况非常不可能,但仍然有可能 我在考虑在用户表中创建某种条目,管理员

因此,我正在制作一个php网站,有时需要管理员类型用户输入大数据。这种情况不会经常发生,只会在数据库中更新或添加某些数据时发生

在这段可能需要一两分钟的上传时间内,我不能让其他用户像平时一样尝试提取数据并对其进行操作,因为这可能会导致一些重大错误

一种解决方案是停止服务器一段时间,并将站点置于维护之下,以便管理员类型的用户在本地上传数据

然而,网站上一次的用户不会超过1-2个,而且这些更新时间短(1-2分钟)且不频繁。这使得这种情况非常不可能,但仍然有可能

我在考虑在用户表中创建某种条目,管理员可以在更新前后进行切换,并且我的代码可以在每次用户数据操作之前进行检查。然后,如果用户试图在该值处于启用状态时进行保存,则只会出现一个弹出窗口或告诉他们等待几分钟的内容


这样行吗?有更好的方法吗?

有一种方法可以锁定一个表,以便成为该表的唯一用户

有读锁和写锁,但在这种情况下,写锁可能是解决方案

写锁具有以下功能:

  • 只有持有表锁的会话才能从表中读取和写入数据
  • 在释放写锁之前,其他会话无法从表中读取数据和向表中写入数据
  • 要在mysql中锁定表,只需使用:

    LOCK TABLE\u name写入

    如果需要多个表,只需添加逗号即可:

    LOCK TABLES table_name1 WRITE, 
                table_name2 WRITE,
                ... ;
    
    查询完成后,只需使用
    UNLOCK表即可以解锁表


    有关mysql表锁定的更完整教程,请访问。

    您可以锁定表。或者,我有时会做的另一种选择是,让所有用户通过视图进行访问,然后在更新数据时删除视图。那可能很适合我的情况,谢谢!