120 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			120 lines
		
	
	
		
			3.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace Safe;
 | |
| 
 | |
| use Safe\Exceptions\MysqlndMsException;
 | |
| 
 | |
| /**
 | |
|  * Returns a list of currently configured servers.
 | |
|  *
 | |
|  * @param mixed $connection A MySQL connection handle obtained from any of the
 | |
|  * connect functions of the mysqli,
 | |
|  * mysql or
 | |
|  * PDO_MYSQL extensions.
 | |
|  * @return array FALSE on error. Otherwise, returns an array with two entries
 | |
|  * masters and slaves each of which contains
 | |
|  * an array listing all corresponding servers.
 | |
|  *
 | |
|  * The function can be used to check and debug the list of servers currently
 | |
|  * used by the plugin. It is mostly useful when the list of servers changes at
 | |
|  * runtime, for example, when using MySQL Fabric.
 | |
|  *
 | |
|  * masters and slaves server entries
 | |
|  * @throws MysqlndMsException
 | |
|  *
 | |
|  */
 | |
| function mysqlnd_ms_dump_servers($connection): array
 | |
| {
 | |
|     error_clear_last();
 | |
|     $result = \mysqlnd_ms_dump_servers($connection);
 | |
|     if ($result === false) {
 | |
|         throw MysqlndMsException::createFromPhpError();
 | |
|     }
 | |
|     return $result;
 | |
| }
 | |
| 
 | |
| 
 | |
| /**
 | |
|  * MySQL Fabric related.
 | |
|  *
 | |
|  * Switch the connection to the nodes handling global sharding queries
 | |
|  * for the given table name.
 | |
|  *
 | |
|  * @param mixed $connection A MySQL connection handle obtained from any of the
 | |
|  * connect functions of the mysqli,
 | |
|  * mysql or
 | |
|  * PDO_MYSQL extensions.
 | |
|  * @param mixed $table_name The table name to ask Fabric about.
 | |
|  * @return array FALSE on error. Otherwise, TRUE
 | |
|  * @throws MysqlndMsException
 | |
|  *
 | |
|  */
 | |
| function mysqlnd_ms_fabric_select_global($connection, $table_name): array
 | |
| {
 | |
|     error_clear_last();
 | |
|     $result = \mysqlnd_ms_fabric_select_global($connection, $table_name);
 | |
|     if ($result === false) {
 | |
|         throw MysqlndMsException::createFromPhpError();
 | |
|     }
 | |
|     return $result;
 | |
| }
 | |
| 
 | |
| 
 | |
| /**
 | |
|  * MySQL Fabric related.
 | |
|  *
 | |
|  * Switch the connection to the shards responsible for the
 | |
|  * given table name and shard key.
 | |
|  *
 | |
|  * @param mixed $connection A MySQL connection handle obtained from any of the
 | |
|  * connect functions of the mysqli,
 | |
|  * mysql or
 | |
|  * PDO_MYSQL extensions.
 | |
|  * @param mixed $table_name The table name to ask Fabric about.
 | |
|  * @param mixed $shard_key The shard key to ask Fabric about.
 | |
|  * @return array FALSE on error. Otherwise, TRUE
 | |
|  * @throws MysqlndMsException
 | |
|  *
 | |
|  */
 | |
| function mysqlnd_ms_fabric_select_shard($connection, $table_name, $shard_key): array
 | |
| {
 | |
|     error_clear_last();
 | |
|     $result = \mysqlnd_ms_fabric_select_shard($connection, $table_name, $shard_key);
 | |
|     if ($result === false) {
 | |
|         throw MysqlndMsException::createFromPhpError();
 | |
|     }
 | |
|     return $result;
 | |
| }
 | |
| 
 | |
| 
 | |
| /**
 | |
|  * Returns an array which describes the last used connection from the plugins
 | |
|  * connection pool currently pointed to by the user connection handle. If using the
 | |
|  * plugin, a user connection handle represents a pool of database connections.
 | |
|  * It is not possible to tell from the user connection handles properties to which
 | |
|  * database server from the pool the user connection handle points.
 | |
|  *
 | |
|  * The function can be used to debug or monitor PECL mysqlnd_ms.
 | |
|  *
 | |
|  * @param mixed $connection A MySQL connection handle obtained from any of the
 | |
|  * connect functions of the mysqli,
 | |
|  * mysql or
 | |
|  * PDO_MYSQL extensions.
 | |
|  * @return array FALSE on error. Otherwise, an
 | |
|  * array which describes the connection used to
 | |
|  * execute the last statement on.
 | |
|  *
 | |
|  * Array which describes the connection.
 | |
|  * @throws MysqlndMsException
 | |
|  *
 | |
|  */
 | |
| function mysqlnd_ms_get_last_used_connection($connection): array
 | |
| {
 | |
|     error_clear_last();
 | |
|     $result = \mysqlnd_ms_get_last_used_connection($connection);
 | |
|     if ($result === false) {
 | |
|         throw MysqlndMsException::createFromPhpError();
 | |
|     }
 | |
|     return $result;
 | |
| }
 |