(PECL mysqlnd_ms >= 1.2.0)
mysqlnd_ms_get_last_gtid — Devuelve el último ID de transacciones global
Devuelve un identificador de transacciones global que pertenece a una operación de escritura no más antigua que la última escritura realizada por el cliente. No se garantiza que el identificadro de transacciones global sea idéntico al creado por la transacción de escritura realizada por el cliente.
connection
Un gestor de conexión de PECL/mysqlnd_ms hacia un servidor MySQL del tipo PDO_MYSQL, mysqli> o ext/mysql. Este gestor de conexión se obtiene al abrir una conexión con un nombre de equipo anfitrión que coincide con la entrada del fichero de configuración de mysqlnd_ms usando cualquier de las tres extensiones del controlador de MySQL anteoriores.
Devuelve un ID de transacciones global (GTID) en caso de éxito.
De otro modo, devuelve FALSE
.
La función mysqlnd_ms_get_last_gtid() devuelve el GTID obtenido al ejecutar una sentencia SQL desde la entrada fetch_last_gtid de la sección global_transaction_id_injection del fichero de configuración delcomplemento.
La función puede ser invocada después de que el GTID haya sido incrementado.
Nota:
mysqlnd_ms_get_last_gtid() requiere PHP >= 5.4.0 y PECL mysqlnd_ms >= 1.2.0. Internamente, se utiliza una funcionalidad en C de la biblioteca mysqlnd no disponble en PHP 5.3.
Observe que todas las versiones de producción de MySQL 5.6 no proporcionan clientes con suficiente información para usar GTID para forzar la consistencia de sesión. En el peor de los casos, el complemento eligirá solamente el maestro.
Ejemplo #1 Ejemplo de mysqlnd_ms_get_last_gtid()
<?php
/* Abrir una conexión mysqlnd_ms usando la extensión mysqli, PDO_MySQL o mysql */
$mysqli = new mysqli("myapp", "nombre_usuario", "contraseña", "base_datos");
if (!$mysqli)
/* Por supuesto, su manejo de errores es mejor... */
die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
/* modo autoconsigna, transacción en el maestro, el GTID debe ser incrementado */
if (!$mysqli->query("DROP TABLE IF EXISTS test"))
die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
printf("GTID después de la transacción %s\n", mysqlnd_ms_get_last_gtid($mysqli));
/* modo autoconsigna, transacción en el maestro, el GTID debe ser incrementado */
if (!$mysqli->query("CREATE TABLE test(id INT)"))
die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
printf("GTID después de la transacción %s\n", mysqlnd_ms_get_last_gtid($mysqli));
?>