要锁定一行,
require_once ("config.inc.php"); //数据库连接
mysql_query("set autocommit=0");
mysql_query("begin");
mysql_query("select * from `news` where id=1 for update ");
echo "test";
?>
然后我在 ie窗口执行这个语,正常显示执行
我用chrome开一个窗口中,打开phpmyadim ,执行sql 语句
delete from `news` where id=1
居然删除了第一行,说明锁定没有成功,
在php中应该怎么写才对?
如果您对存储引擎使用FOR UPDATE,则受到查询检验的行会被进行写锁定,直到当前事务结束为止。
显然你的测试不符合描述的情况
如果您对存储引擎使用FOR UPDATE,则受到查询检验的行会被进行写锁定,直到当前事务结束为止。
显然你的测试不符合描述的情况
我主要想知道在php中如何写 悲观锁定行。请朋友 们帮忙
你写的并没有错,但你传递测试是错的
锁定(表锁、行锁)都只在当前连接中有效,关闭连接就解锁了
你的测试设计应该是在程序 a 正在执行
SELECT * FROM `news` where id=1 for update
时,程序 b 去执行
delete FROM `news` where id=1
这个度是很难把握的,早了晚了都不行
你写的并没有错,但你传递测试是错的
锁定(表锁、行锁)都只在当前连接中有效,关闭连接就解锁了
你的测试设计应该是在程序 a 正在执行
SELECT * FROM `news` where id=1 for update
时,程序 b 去执行
delete FROM `news` where id=1
这个度是很难把握的,早了晚了都不行
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号