我有一个应用程序:
但是,我想在多处理器服务器中,脚本可以假设在两个内核上并发执行;因此,两个脚本试图访问表中的同一行时可能会出现问题,即使它理想情况下只能用于其中一个脚本。
我想我的问题是,有什么方法可以在特定行上创建一个锁,这样它一次只能由一个PHP脚本实例访问?谢谢!
答案 0 :(得分:0)
MySQL的默认行为可能足以解决您的问题: http://dev.mysql.com/doc/refman/5.0/en/internal-locking.html
答案 1 :(得分:0)
只需使用交易。
BEGIN WORK;
...sql statements...
COMMIT;
如果您使用的是MyISAM,可以使用LOCK TABLES
,但效率很低,因为它会锁定整个表,而不仅仅是一组行。