En realidad PDO::beginTransaction()
sigue las mismas reglas que START TRANSACTION
declaración en MySQL, más información aquí
.
Esto significa que MySQL no bloqueará la tabla inmediatamente, sino que seguirá el ACID reglas.
Tenga en cuenta que si necesita bloquear explícitamente algunas tablas, puede hacerlo:
$db->beginTransaction();
$db->exec('LOCK TABLES t1, t2, ...');