Efectivamente. Cuando termina la ejecución de un script termina la conexión, con lo cual termina también la transacción. Luego esta solución no me vale porque para modificar un registro yo tengo que:
1. hacer una lectura del registro.
2. llevar los datos de la lectura a un formulario de html.
3. el usuario tendrá que modificar los datos del formulario y al enviar el formulario
4. el action del formulario llamará a un script php.
En mi aplicación sería:
1. El controlador (un script) pide al modelo (otro script) que recupere el registro de la base de datos.
2. La vista muestra los datos en el formulario html.
3. El usuario envia el formulario modificado que llama de nuevo al controlador.
4. El controlador pide al modelo que guarde los datos en la base de datos.
En todo este proceso no es posible mantener una única conexión abierta a la base de datos y una transacción abierta.
Luego, después de todo este lio, vuelvo a mi pregunta inicial: ¿Cómo implementan una solución al problema de la concurrencia a la base de datos en una aplicación php?