(PECL mysqlnd_ms >= 1.2.0)
mysqlnd_ms_get_last_gtid — Retourne le dernier identifiant de transaction globale
Retourne un identifiant de transaction globale qui appartient à une opération en écriture plus récente que la dernière opération en écriture effectuée par le client. Il n'est pas garanti que l'identifiant de transaction globale est identique à celui créée pour la dernière transaction en écriture effectuée par le client.
connection
Un gestionnaire de connexion PECL/mysqlnd_ms vers un serveur MySQL de type PDO_MYSQL, mysqli ou ext/mysql. Le gestionnaire de connexion est obtenu lors de l'ouverture d'une connexion avec le nom d'hôte qui correspond à l'entrée du fichier de configuration mysqlnd_ms utilisant n'importe laquelle des extensions MySQL listées ci-dessus.
Retourne un identifiant de transaction globale (GTID) en cas de succès, FALSE
sinon.
La fonction mysqlnd_ms_get_last_gtid() retourne le GTID obtenu en exécutant la requête SQL depuis l'entrée fetch_last_gtid de la section global_transaction_id_injection depuis le fichier de configuration du plugin.
La fonction peut être appelée après que GTID ait été incrémenté.
Note:
mysqlnd_ms_get_last_gtid() requière PHP >= 5.4.0 et PECL mysqlnd_ms >= 1.2.0. En interne, elle utilise une fonctionnalité de la bibliothèque C de mysqlnd qui n'est pas disponible avec PHP 5.3.
Exemple #1 Exemple avec mysqlnd_ms_get_last_gtid()
<?php
/* On ouvre une connexion mysqlnd_ms en utilisant l'extension mysqli, PDO_MySQL ou mysql */
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli)
/* Bien évidemment, votre gestionnaire d'erreurs est meilleur... */
die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
/* mode auto_commit, transaction sur le maître, le GTID doit être incrémenté */
if (!$mysqli->query("DROP TABLE IF EXISTS test"))
die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
printf("GTID après la transaction %s\n", mysqlnd_ms_get_last_gtid($mysqli));
/* mode auto_commit, transaction sur le maître, le GTID doit être incrémenté */
if (!$mysqli->query("CREATE TABLE test(id INT)"))
die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
printf("GTID après la transaction %s\n", mysqlnd_ms_get_last_gtid($mysqli));
?>