成都网站建设设计

将想法与焦点和您一起共享

PHP防止修改同一条数据 php防止修改同一条数据的方法

php中,多个用户同时修改一条记录的问题,如何解决

可以写一个状态字段,当有用户在编辑的时候加个状态,有状态的数据其它的用户不能编辑

创新互联建站是一家专业提供鹿寨企业网站建设,专注与成都做网站、网站制作、H5高端网站建设、小程序制作等业务。10年已为鹿寨众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。

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 怎么防止GET方式提交重复数据?

PHP 防止表单重复提交,使用令牌来做验证,即可解决。示例如下:

index.php:

?php 

header("Content-type:text/html;charset=utf-8");

//开启session

session_start();

//如果令牌为空,则生成一个令牌

if(!isset($_SESSION['token'] )    || $_SESSION['token'] == ""){

//给当前表单生成一个令牌

$_SESSION['token'] = md5(microtime(true));

}

?

form method="get" action="deal.php"

名称: input type="text" name="names"br/

描述: input type="text" name="desc"br/

input type="text" name="token" value="?=$_SESSION['token']?"

input type="submit" value="提交"

/form

deal.php:

?php

header("Content-type:text/html;charset=utf-8");

//开启session

session_start();

//验证令牌

if($_REQUEST['token'] === $_SESSION['token']){

//表单已经提交,重新生成令牌

$_SESSION['token'] = md5(microtime(true));

echo "表单提交成功:br/";

print_r($_REQUEST);

}else{

echo "重复提交";

}

?

哪位大侠帮帮忙,php同时修改不在同一张数据表里面的相同的密码,怎么做?就是同步修改2张表里的密码。

执行两次查询语句就可以啊.

update table1 set 密码=新密码 where 条件

update table2 set 密码=新密码 where 条件

没必要完全同时修改吧,或者说,一般的需求用不到.

几个不同网站如何使用同一数据库?

可以的,网络数据库的连接方式就把你原来的连接语句的本地地址改为ip地址就ok啦。

很简单,数据库配置文件改成一致的就行。

1:当然前提是调用的表和字段都是一样的,比如多个网站都是dedeCMS或者都是PHPcms。一个DEDECMS一个phpcms要同样的数据库是不行的(当然这两个安装的时候可以选择同一个数据库,因为表前缀不同他们可以共存一个数据库,但是dedecms后台发布的文章不会同步到phpcms上)。

2:可以共用一个数据库。两个系统同时修改同一条数据会存在一致性问题,也就是会冲突,需要用技术手段加以控制。缓存也是有问题的,由于你用的开发语言不同,恐怕也只有Memcache这种集中式的缓存可以使用。也可以从业务逻辑的设计上避免缓存的数据不一致性。总之可以这样用,但是要小心设计。

PHP用异步发信息给后台update处理数据库,为何不能重复修改数据

怎么感觉sql语法不对呢?

UPDATE 命令语法:

UPDATE [LOW_PRIORITY] [IGNORE] tbl_name

SET col_name1=expr1 [, col_name2=expr2 ...]

[WHERE where_definition]

[ORDER BY ...]

[LIMIT row_count]

上面的语句貌似应该是:

update table_name set time=1 where id=001


名称栏目:PHP防止修改同一条数据 php防止修改同一条数据的方法
文章分享:http://chengdu.cdxwcx.cn/article/hhodih.html