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;
 | 
						|
}
 |