我是使用交易的新手。
START TRANSACTION
基本上,我能够使用后跟SELECT ... FOR UPDATE
语句成功锁定 MySQL 控制台中的单行。该行保持锁定,直到我COMMIT
在控制台中运行命令
但是,当我在 PHP 脚本中使用$db->beginTransaction()
后跟执行相同操作时,在我运行脚本 $db->execute("SELECT ... FOR UPDATE")
之前该行不会被锁定。$db->commit()
我的意思是SELECT ... FOR UPDATE
即使在我在 PHP 中运行提交脚本以结束事务之前,我仍然可以在控制台中成功地执行语句。这是否意味着我的 PHP 脚本在事务期间没有成功锁定行?我怎样才能检查?