ADOdb

Database Abstraction Layer for PHP

User Tools

Site Tools


v5:reference:loadbalancer:getconnection

getConnection

Applies To

ADOdb Load Balancer

Syntax
 obj getConnection(
       optional string $connectionType = 'write',
       optional bool $pinConnection = null
       
       )

Description

The method getConnection() gets a connection of the requested type (write/readonly) and ensures that the connection is established and all initialization is complete.

The returned object is an ADOdb connection object, which can be accessed in the normal way


To ensure the accuracy of the response, you should have already executed at least one statement against the load balancer connection, or used a method such as clusterExecute

Usage

If the system could not determine whether the command to be executed is read-only or not, for example in a stored procedure, then this method can be used to retrieve a connection of the appropriate type.

$db = new ADOdbLoadBalancer;
 
$driver = 'mysqli';
$database = 'employees';
$user     = 'adodb';
$password = 'adodb';
$host     = '192.168.0.200';
$db0 = new ADOdbLoadBalancerConnection( $driver,
                                        'write', 
                                        10, 
                                        false, 
                                        $host, 
                                        $user, 
                                        $password, 
                                        $database );
/*
* Add the connection to the pool
*/
$db->addConnection( $db0 );
$db1 = new ADOdbLoadBalancerConnection( $driver,
                                        'readonly', 
                                        10, 
                                        false, 
                                        $host, 
                                        $user, 
                                        $password, 
                                        $database );
/*
* Add the connection to the pool
*/
$db->addConnection( $db1 );
 
/*
* Execute something to ensure connection accuracy
*/
$db->clusterExecute('SET SESSION 1=1');
 
/*
* Find a readwrite connection, pin it for the next statement
*/
$db->getConnection('write',$pin=true);
 
/*
* Now construct a stored procedure and execute it against $db,
* because it is pinned, it will execute against the 'write' node
*/
$stmt = $db->PrepareSP('kmnProc');
$val1 = 'ADMIN';
$par1 = 'users';
$db->InParameter($stmt,$val1,$par1);
$db->OutParameter($stmt,$ret,'RETVAL');
v5/reference/loadbalancer/getconnection.txt · Last modified: 2017/05/11 00:51 by mnewnham