所以我有个密码:
mysql_query("INSERT INTO table (id, field1, field2) VALUES ($id_insert, $field1, $field2)");
$id = mysql_result(mysql_query('SELECT LAST_INSERT_ID()'));
mysql_query("UPDATE table SET field3 = $id WHERE id = $id");我的问题is...Is在运行这段代码时可能会出现mysql死锁,如果是的话,为什么会这样呢?
现在我可以执行PHP侧锁定,但是我需要一个唯一的锁标识符。在选择唯一的锁标识符名称时,有哪些指导原则?如何选择正确防止MySQL死锁的锁名?
发布于 2014-03-18 04:22:00
您可以使用mysql锁定功能:
mysql_query("LOCK TABLES table WRITE"); // You need to use WRITE lock in your case然后执行您的查询:
mysql_query("INSERT INTO table (id, field1, field2) VALUES ($id_insert, $field1, $field2)");
$id = mysql_result(mysql_query('SELECT LAST_INSERT_ID()'));
mysql_query("UPDATE table SET field3 = $id WHERE id = $id");然后松开锁
mysql_query("UNLOCK TABLES");Note1:
要获得完整的参考,请使用Mysql锁定概念
Note2:
不推荐使用mysql_*函数,我建议查看MYSQL
https://stackoverflow.com/questions/22459132
复制相似问题