如何在 php/mysql Web 应用程序中实现悲观锁定?

2024-04-11

如何在 php/mysql Web 应用程序中实现悲观锁定?

  1. 网络用户打开一个页面来编辑一个数据集(行)
  2. 网络用户单击“锁定”按钮,因此其他用户可以读取但不能写入此数据集
  3. 网络用户进行一些修改(可能需要 1 到 30 分钟)
  4. 网络用户单击“保存”或“取消”,“锁定”被删除

php/mysql 中有针对这种情况的标准方法吗?如果网络用户从未点击“保存”/“取消”而是关闭互联网浏览器,会发生什么?


您需要在表中实现 LOCKDATE 和 LOCKWHO 字段。我已经在 PHP/Mysql 之外的许多应用程序中做到了这一点,并且总是以相同的方式进行。

当 TTL 过去后,锁定就会终止,因此您可以使用 NOW 和 LOCALDATE 进行日期减法,以查看对象是否已锁定超过 30 分钟或 1 小时(如您所愿)。

另一个因素是考虑当前用户是否是锁定对象的用户。这就是为什么您还需要 LOCKWHO。这可以是数据库中的 user_id、PHP 中的 session_id。但将其保留为可识别用户的名称,IP 地址并不是一个好方法。

最后,始终考虑一个批量解锁功能,该功能可以简单地重置所有 LOCKDATE 和 LOCKWHO...

Cheers

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 php/mysql Web 应用程序中实现悲观锁定? 的相关文章

  • 如何将粘在一起的单词分开?

    我有很多命名不好的文件 videoofmegoingtoschool avi 是否有一个库或某种算法可以正确地将其分离 video of me going to school avi 我不认为那里有什么 我可以想象一个程序 它使用单词词典并
  • 在上下文中提取搜索字符串

    我正在尝试执行 MySQL 查询 在上下文中提取搜索字符串 因此 如果搜索是 mysql 我想从 body 列返回类似的内容 下载后只需几分钟MySQL安装程序即可使用 这就是我现在得到的 但它不起作用 因为它只是从正文字段中获取前 20
  • JavaScript 中带前导零的数字发生变化

    我使用 print 语句从 php 调用 javascript 函数来打印 html 代码 并且传入一个整数 但是 在 php 中传递的值与 javascript 函数接收到的数字不匹配 我不知道为什么 这是调用 javascript 函数
  • 如何将行变成列?

    我有一个数据库 其中存储分组到项目中的关键字以及与每个关键字相关的数据 然后我显示每个项目的数据网格 每个关键字一行和几列 全部从同一个表 数据 中检索 我有 4 个表 关键字 项目 group keywords 和数据 keywords
  • 如何将 MySQL 查询输出保存到 Excel 或 .txt 文件? [复制]

    这个问题在这里已经有答案了 如何将 MySQL 查询的输出保存到 MS Excel 工作表 即使只能将数据存储在 txt文件 就可以了 From 将 MySQL 查询结果保存到文本或 CSV 文件中 http www tech recipe
  • 重新排列数组键 php [重复]

    这个问题在这里已经有答案了 我有这个数组 Array 15 gt 13 1 16 gt Mark one answer 19 gt You see a car on the hard shoulder of a motorway with
  • 如何让Gmail像加载进度条一样

    我想在页面的中心和顶部创建一个像 Gmail 一样的加载进度条 并适用于所有浏览器 这是基本代码
  • CSS 无法从带有 php“includes”的相对路径工作

    文件夹结构 index php includes header html css style css 我的主项目文件夹中有 2 个子文件夹 一个是名为 includes 的文件夹 另一个名为 css 我有我的 index php主文件夹中的
  • MySQL 数据库无法在 XAMPP for Mac 上启动

    突然我在 mac 上遇到了这个问题 我无法启动我的 MySQL 数据库 我只能启动 ProFTPD 和 Apache Web Server 这是应用程序日志 Starting all servers Starting MySQL Datab
  • 从 Grib 天气模型中提取数据

    我已经下载了grib1模型数据来自GFS http en wikipedia org wiki Global Forecast System 我使用的是 Mac OS X 并且能够构建wgrib2文件来自NOAA http en wikip
  • PHP:在脚本完成之前获取输出

    我有一个名为 data php 的脚本 如下所示 do some stuff echo result do some other stuff eg database operations 我需要在另一个脚本中使用 data php 的输出
  • 简单的dom php解析获取自定义数据属性值

    HTML div class something ddsf PHP foreach dom gt find something data rel as this var dump this gt attr 我尝试了这个但错误 在其文档中找不
  • 加载数据infile,Windows和Linux的区别

    我有一个需要导入到 MySQL 表的文件 这是我的命令 LOAD DATA LOCAL INFILE C test csv INTO TABLE logs fields terminated by LINES terminated BY n
  • MySQL 将表从 Latin1 转换为 utf8

    我需要将包含大量数据的表从 Latin1 转换为 utf8 以便它可以接受韩语字符 如何更改该表而不损坏其中的数据 我的 SQL 语句是什么 最好的方法是什么 ALTER TABLE database name table name CON
  • 使用连接池后如何处理过多的并发连接?

    Scenario 假设您有一个拥有大量流量的网站或应用程序 即使使用数据库连接池 性能也会受到真正的打击 站点 应用程序甚至可能崩溃 因为并发连接太多 Question 人们有什么选择来处理这个问题 我的想法 我在想有这个问题的人可以创建多
  • 如何确保在 PHP 的“foreach”循环中重置该值?

    我正在写一个简单的 PHP 页面和一些foreach使用了循环 以下是脚本 arrs array a b c foreach arrs as arr if substr arr 0 1 b echo This is b End of fir
  • 如何使用 Mysql Python 连接器检索二进制数据?

    如果我在 MySQL 中创建一个包含二进制数据的简单表 CREATE TABLE foo bar binary 4 INSERT INTO foo bar VALUES UNHEX de12 然后尝试使用 MySQL Connector P
  • 无法在 mysql-apt-config [Ubuntu 14.04] 中选择“确定”

    我使用的是 Ubuntu 14 04 sudo apt get update总是给我这个选项来配置 mysql apt config 我尝试选择版本 按 tab gt 在 确定 上突出显示的键 按 Enter 但没有任何反应 它再次返回并突
  • 谷歌日历手表过期时间超过1个月怎么办?

    我将我的 CRM 系统与 Google 日历同步 为此 我要求push notifications从我的用户 Google 日历到我的系统 我已经成功创建了手表 并将过期时间设置为2030年 但是当我收到手表事件的响应时 它显示手表的过期时
  • 如何在 Carbon Laravel 中添加日期和另一个日期?

    在我的 laravel 项目中 我想将日期时间增加到前一个日期时间 这是我的代码 expire order 0 gt expire date new Carbon now gt addMonths 6 这两行的结果是 2018 01 28

随机推荐

  • window.onload 与 $(document).ready()

    JavaScript 之间有什么区别window onload https developer mozilla org en docs Web API GlobalEventHandlers onload和 jQuery 的 documen
  • Vertx JDBC 的底层工作原理

    我已经使用 Vertx 3 个月了 但现在我想知道非阻塞 Vertx JDBC 是如何工作的 例如 private void selectEndedMatches this jdbcClient getConnection conn gt
  • `fs.js` 中的 `process.binding('fs')` 是什么? [复制]

    这个问题在这里已经有答案了 我看到在顶部fs js有一个process binding fs https github com nodejs node blob master lib fs js L10 https github com n
  • Facebook 创建新应用程序错误 - “不应包含协议信息。”

    我正在尝试更新 创建我的应用程序的 应用程序域 但它不断抛出此错误 Error 应用程序域 http www example com http www example com不应包含协议信息 而我 100 确定我的网站没有任何 OpenGr
  • 如何在 alpine 上安装 aws-cli?

    我正在运行 alpine 的 docker swarm 管理器节点上安装 aws cli Linux 0317632a4ad9 4 9 59 moby 1 SMP Thu Mar 1 20 54 00 UTC 2018 x86 64 Lin
  • 如何制作 HTML 脚本来替换网站的 cookie

    我想要制作一个 HTML 脚本 只需单击一下按钮即可替换特定网站的 cookie PS 我不知道这是如何完成的 我之前创建过扩展 但是我想创建一个执行相同工作的网页 HTML 根本无法对 cookie 执行任何操作 Cookie 可以通过以
  • mySQL 当 field=0 时返回所有行

    我正在做一些测试 当我查询一个表时 令人惊讶的是 查询SELECT FROM table WHERE email 0返回表中的所有行 该表没有 0 值 并且填充了常规电子邮件 为什么会出现这种情况 这可能会导致严重的安全问题 有没有办法在不
  • 在 iOS6 上切换设备上的 FB 帐户时 Facebook 授权失败

    我正在使用 Facebook SDK 3 1 1 在我的 iOS 应用程序中实现 FB Connect 在简单的情况下 无论是使用新的 FB 集成 在 iOS 上登录 还是通过 Web 视图返回到正常授权 在这两种情况下我都没有安装本机 F
  • 是否有任何平台在 fd_set(对于 select() 或 pselect())上使用结构复制会导致问题?

    The select and pselect http www opengroup org onlinepubs 9699919799 functions pselect html系统调用修改它们的参数 fd set 参数 因此输入值告诉系
  • $(document).on 'ready page:load' - 在 ie10 中无法正常工作

    我正在 Rails 中开发 对于jquery 我使用coffeescript Turbolink 处于活动状态 我有一个问题 这让我很紧张 当我想启动我的函数 这里称为脚本 时 我使用以下代码 document on ready page
  • 当 iPhone 进入睡眠状态时,AVAudioPlayer 停止播放音频

    只要我的应用程序正在运行 我就需要一直播放背景声音 我尝试使用 AVAudioPlayer 来实现此目的 然而 一旦 iPhone 进入睡眠模式 它就会停止播放声音 你能让我知道如何解决这个问题吗 Thanks 您可能需要设置音频会话类别
  • 滚动所有嵌套滚动条以将 HTML 元素带入视图

    我无法理解它 该元素存在于多个可滚动 DIV 元素的嵌套层次结构中 而不是存在于单个可滚动文档窗口中 我头疼的问题之一是如何scrolled offsetParent is document body 颜色papayawhip在下面的测试代
  • 如何在 MATLAB 中保存高分辨率图形

    当我从 MATALB 保存图形时 我希望生成的图像具有非常高分辨率 以便我可以放大以查看图像中的细节 当我在图形上使用 文件 gt 另存为 时 图像的分辨率不高 如何在 MATLAB 中将图形保存为高分辨率图像 您可以从命令行或 文件 菜单
  • vbCrLF 或环境.NewLine

    我使用Environment NewLine 我的同事使用vbCrLf 当我为他们进行代码审查时 我想要一些我可以指出的东西来说明 使用Environment NewLine而不是vbCrLf 或者 我只是在风中撒尿 这并不重要吗 Envi
  • pygame.display.update() 错误:视频系统未初始化

    import pygame from pygame locals import def main global FPSCLOCK DISPLAYSURF BASICFONT PLAY SURF PLAY RECT NEW SURF NEW
  • 什么是“PHP 标准化”版本号字符串?

    我搜索了一个描述 PHP标准化 版本号字符串的网络资源 但我没有找到 有吗 我想知道如何编写有效的 PHP 标准化 版本 PHP standardized number format与描述页面相关的是语义版本控制 http semver o
  • BackgroundWorker 完成事件 - 哪个线程?

    BackgroundWorker 控件的已完成事件是否返回到 GUI 线程 或者我是否必须将其封送回来 另外 进度事件是否返回到 GUI 线程 或者我是否必须将其封送回来 这两个事件都将被编组到 UI 线程上
  • Rails - 具有 data-* 属性的 link_to 帮助器 [重复]

    这个问题在这里已经有答案了 可能的重复 将 html5 数据属性与 Rails content tag 帮助器一起使用的最佳方法 https stackoverflow com questions 4258512 best way to u
  • 使用 Spring Data JDBC 的嵌套数据结构

    我想创建一个嵌套的数据结构 Entity1包含类型的对象Entity2存储在地图中 Entity2应该包含一个对象的映射Entity3 第一部分 Entity1 and Entity工作正常 当我添加Entity3 发生异常 当我执行一个简
  • 如何在 php/mysql Web 应用程序中实现悲观锁定?

    如何在 php mysql Web 应用程序中实现悲观锁定 网络用户打开一个页面来编辑一个数据集 行 网络用户单击 锁定 按钮 因此其他用户可以读取但不能写入此数据集 网络用户进行一些修改 可能需要 1 到 30 分钟 网络用户单击 保存