mysqlnd_ms_get_last_gtid

(PECL mysqlnd_ms >= 1.2.0)

mysqlnd_ms_get_last_gtidRetourne le dernier identifiant de transaction globale

Description

mysqlnd_ms_get_last_gtid ( mixed $connection ) : string

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.

Liste de paramètres

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.

Valeurs de retour

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é.

Notes

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.

Veuillez noter que toutes les versions en production de MySQL 5.6 ne fournissent pas aux clients les informations suffisantes pour l'utilisation des GTIDs permettant de renforcer la consistence des sessions. Dans un tel cas, le plugin choisira uniquement le maître.

Exemples

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));
?>