- PHP 手册
- 函数参考
- 数据库扩展
- 针对各数据库系统对应的扩展
- MySQL
- mysqlnd_ms
- Mysqlnd_ms 函数
mysqlnd_ms_get_last_gtid
(PECL mysqlnd_ms >= 1.2.0)
mysqlnd_ms_get_last_gtid — 返回最后的全局同步 ID (GTID)
说明
mysqlnd_ms_get_last_gtid ( mixed$connection
) : string
返回最后一次写操作以后的 GTID,他并不能保证一定是那次写操作产生的 GTID,但是得到的 GTID 一定比这次写操作产生的 GTID 大。
参数
-
connection
-
由 PDO_MYSQL, mysqli> 或者 ext/mysql 产生的 MySQL 服务器连接, 这些链接受 PECL/mysqlnd_ms 连接控制。连接的创建是通过 mysqlnd_ms 配置文件中 约定的群组名称建立的。
返回值
成功返回 GTID,失败返回 FALSE
。
函数通过配置文件中 global_transaction_id_injection 章节定义的 fetch_last_gtid 参数来获取 GTID。
在函数调用的时候,GTID 可能已经增加了。
注释
Note:
函数需要 PHP >= 5.4.0 版本,PECL/mysqlnd_ms >= 1.2.0 版本,在 PHP 5.3 版本中 mysqlnd 库不能使用。
范例
Example #1 mysqlnd_ms_get_last_gtid() example
<?php
/* Open mysqlnd_ms connection using mysqli, PDO_MySQL or mysql extension */
$mysqli = new mysqli("myapp", "username", "password", "database");
if (!$mysqli)
/* Of course, your error handling is nicer... */
die(sprintf("[%d] %s\n", mysqli_connect_errno(), mysqli_connect_error()));
/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("DROP TABLE IF EXISTS test"))
die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
printf("GTID after transaction %s\n", mysqlnd_ms_get_last_gtid($mysqli));
/* auto commit mode, transaction on master, GTID must be incremented */
if (!$mysqli->query("CREATE TABLE test(id INT)"))
die(sprintf("[%d] %s\n", $mysqli->errno, $mysqli->error));
printf("GTID after transaction %s\n", mysqlnd_ms_get_last_gtid($mysqli));
?>
参见
- Global Transaction IDs
User Contributed Notes
There are no user contributed notes for this page.官方地址:https://www.php.net/manual/en/function.mysqlnd-ms-get-last-gtid.php