PHP如何锁住MYSQL表数据? 系统中两个不同用户登录,进行同样的操作,添加数据。怎么锁住表,以防垃圾数据的添加。比如添加一条数据,两个用户添加的数据ID相同,更新的时候同时读取。我看了一些资料,有锁表,锁行,锁数据库的。不过好像不同的引擎支持不同的锁操作。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 mysql_query('LOCK TABLES real_table WRITE, insert_table WRITE');//这里执行插入数据操作mysql_query('UNLOCK TABLES'); 可以加个version字段读取的时候把version一起读出,更新的时候,比对version。。如果一致,就允许更新并将version+1否则,说明别人更新,数据覆盖过,更新失败…… 加锁$locktable="lock tables `productbatch`"; $db->ExecuteSQL($locktable);//插入语句,更新语句解锁 $unlocktable = "UNLOCK TABLES `productbatch`"; $db->ExecuteSQL($unlocktable);这样可以吗? 只在 update 时才考虑加锁比如添加一条数据,两个用户添加的数据ID相同当id为自增字段时,这种情况不会发生。否则就不叫数据库了 PHP中数组的元素个素有限制吗? for循环导出数据重复问题 初学者提一关于select问题 一个问题不知道怎么解决! 自己写的一个模板,自己论坛使用,主要想和大家讨论一下思路. php4中select表单中选多项怎么只能传一项?求救! 怎么把上面的数组变成下面的数组 PHP怎么处理移动端提交的表情字符? 求教php页面只能渲染一半,为什么 PDO 的游标为何无效? 父框架网页能不能控制子框架网页的链接呢 Zend Studio7.2+WAMP5 如何配置?
//这里执行插入数据操作
mysql_query('UNLOCK TABLES');
$locktable="lock tables `productbatch`";
$db->ExecuteSQL($locktable);//插入语句,更新语句解锁
$unlocktable = "UNLOCK TABLES `productbatch`";
$db->ExecuteSQL($unlocktable);
这样可以吗?
当id为自增字段时,这种情况不会发生。否则就不叫数据库了