Faktiskt PDO::beginTransaction()
följer samma regler som en START TRANSACTION
uttalande i MySQL, mer info här
.
Detta innebär att MySQL inte kommer att låsa tabellen omedelbart, utan kommer att följa ACID regler.
Observera att om du behöver explicit låsa vissa tabeller kan du göra:
$db->beginTransaction();
$db->exec('LOCK TABLES t1, t2, ...');