När du ringer PDO::beginTransaction() , stänger den av automatisk commit.
Så du kan göra:
$db->beginTransaction();
$db->exec('LOCK TABLES t1, t2, ...');
# do something with tables
$db->commit();
$db->exec('UNLOCK TABLES');
Efter en commit() eller rollBack(), kommer databasen att vara tillbaka i auto commit-läge.