Getting started building a mysqlnd plugin
Introduction
MySQL
PHP Manual

# Mysqlnd replication and load balancing plugin

- Introduction
- Quickstart and Examples
  - Setup
  - Running statements
  - Connection state
  - SQL Hints
  - Local transactions
  - XA/Distributed Transactions
  - Service level and consistency
  - Global transaction IDs
  - Cache integration
  - Failover
  - Partitioning and Sharding
  - MySQL Fabric
- Concepts
  - Architecture
  - Connection pooling and switching
  - Local transaction handling
  - Error handling
  - Transient errors
  - Failover
  - Load balancing
  - Read-write splitting
  - Filter
  - Service level and consistency
  - Global transaction IDs
  - Cache integration
  - Supported clusters
  - XA/Distributed transactions
- Installing/Configuring
  - Requirements
  - Installation
  - Runtime Configuration
  - Plugin configuration file (>=1.1.x)
- Predefined Constants
- Mysqlnd_ms Functions
  - mysqlnd_ms_dump_servers — Returns a list of currently configured servers
  - mysqlnd_ms_fabric_select_global — Switch to global sharding server for a given table
  - mysqlnd_ms_fabric_select_shard — Switch to shard
  - mysqlnd_ms_get_last_gtid — Returns the latest global transaction ID
  - mysqlnd_ms_get_last_used_connection — Returns an array which describes the last used connection
  - mysqlnd_ms_get_stats — Returns query distribution and connection statistics
  - mysqlnd_ms_match_wild — Finds whether a table name matches a wildcard pattern or not
  - mysqlnd_ms_query_is_select — Find whether to send the query to the master, the slave or the last used MySQL server
  - mysqlnd_ms_set_qos — Sets the quality of service needed from the cluster
  - mysqlnd_ms_set_user_pick_server — Sets a callback for user-defined read/write splitting
  - mysqlnd_ms_xa_begin — Starts a distributed/XA transaction among MySQL servers
  - mysqlnd_ms_xa_commit — Commits a distributed/XA transaction among MySQL servers
  - mysqlnd_ms_xa_gc — Garbage collects unfinished XA transactions after severe errors
  - mysqlnd_ms_xa_rollback — Rolls back a distributed/XA transaction among MySQL servers
- Change History
  - PECL/mysqlnd_ms 1.6 series
  - PECL/mysqlnd_ms 1.5 series
  - PECL/mysqlnd_ms 1.4 series
  - PECL/mysqlnd_ms 1.3 series
  - PECL/mysqlnd_ms 1.2 series
  - PECL/mysqlnd_ms 1.1 series
  - PECL/mysqlnd_ms 1.0 series

Getting started building a mysqlnd plugin
Introduction
MySQL
PHP Manual