关于php几个人同时修改数据的信息

PHP 后台多人操作时怎样控制不能同时编辑

用AJAX,当第一位用户进去编辑的时候,就开始记录这个用户的ID。当其他用户进去后台编辑的时候AJAX实时获取,就可以提醒用户已经有人在编辑了,同时限制其他用户编辑

成都创新互联公司自2013年创立以来,先为饶河等服务建站,饶河等地企业,进行企业商务咨询服务。为饶河企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

php里如果二个人同时操一个数据库里表的字段,怎么避免

首先,这个问题只有在特殊情况下才算是问题,大多数情况下可以不作考虑。

然后,这是问题很难描述清楚,解决方案有多种,下面提供一种较方便易用的方式

场景(问题)描述如下:

0,用户A、B同时打开一个页面,页面显示,客户表T_CUSTOMER字段(C_NAME、C_AGE)

姓名:张三,年龄:25

1,A 将姓名“张三”改为“张三1”,然后保存

2,B 将年龄“25”改为“30”,然后保存

这样A的操作就被覆盖了,姓名又变回“张三”了,大家一般怎么处处这种情况?

这里给出一个较易用的解决方案

给表添加一字段:LAST_UPDATE,即最后更新时间

回放场景

0,用户A、B同时打开一页面,面页显示:

姓名:张三,年龄:25,LAST_UPDATE:2008-10-17 13:45:00

1,A 将姓名“张三”改为“张三1”,然后保存

重点在这里:更新数据时WHERE条件里多一条件:AND LAST_UPDATE = '2008-10-17 13:45:00'

更新成功,此时触发器会将当前时间“2008-10-17 13:46:00”赋值给LAST_UPDATE

2,B 将将年龄“25”改为“30”,然后保存

B更新数据时WHERE条件里也有这个条件:AND LAST_UPDATE = '2008-10-17 13:45:00',但此时LAST_UPDATE的值已经在A修改记录时变成2008-10-17 13:46:00

下面要做的就是给出提示了:喔哟,此信息在你发呆这段时间已被人改过啦,所以你需要返工。

触发器代码如下:

===================================================

CREATE OR REPLACE TRIGGER T_CUSTOMER

BEFORE UPDATE ON T_CUSTOMER

FOR EACH ROW

/*

记录最后修改时间

*/

BEGIN

:NEW.LAST_UPDATE := SYSDATE;

END;

===================================================

如果触发器不熟悉或者只是不喜欢用触发器,完全可以修改记录时同时给LAST_UPDATE字段赋值,以此替代触发器的作用。

PHP+MYSQL 环境下,两个管理员同时编辑一条数据,其中一个管理员撤销操作后如何恢复

利用mysql数据库的增量备份功能,先开启增量备份在mysql的配置文件中加上一句log-bin=d:/binlog/mylog//指定备份文件存放目录,重启mysql会在binlog目录下看到mylog.index索引文件和mylog.000001存放操作的文件。这样你的每个不是查询的操作将会被记录到日志文件中。要恢复可以根据时间和位置进行恢复。

mysqlbinlog --stop-datetime="时间" d:/binlog/mylog.000001 | mysql -uroot -p或

mysqlbinlog --stop-postion="位置" d:/binlog/mylog.000001 | mysql -uroot -p均可实现你要的功能!欢迎采用~~


当前标题:关于php几个人同时修改数据的信息
分享地址:http://ybzwz.com/article/doipeso.html