文字

mysqlnd_uh_set_connection_proxy

(PECL mysqlnd-uh >= 1.0.0-alpha)

mysqlnd_uh_set_connection_proxyInstalls a proxy for mysqlnd connections

说明

bool mysqlnd_uh_set_connection_proxy ( MysqlndUhConnection &$connection_proxy [, mysqli &$mysqli_connection ] )

Installs a proxy object to hook mysqlnd's connection objects methods. Once installed, the proxy will be used for all MySQL connections opened with mysqli, mysql or PDO_MYSQL, assuming that the listed extensions are compiled to use the mysqlnd library.

The function can be disabled with mysqlnd_uh.enable . If mysqlnd_uh.enable is set to FALSE the function will not install the proxy and always return TRUE . Additionally, an error of the type E_WARNING may be emitted. The error message may read like PHP Warning: mysqlnd_uh_set_connection_proxy(): (Mysqlnd User Handler) The plugin has been disabled by setting the configuration parameter mysqlnd_uh.enable = false. The proxy has not been installed [...].

参数

connection_proxy

A proxy object of type MysqlndUhConnection.

mysqli_connection

Object of type mysqli. If given, the proxy will be set for this particular connection only.

返回值

Returns TRUE on success. Otherwise, returns FALSE

范例

Example #1 mysqlnd_uh_set_connection_proxy() example

<?php
$mysqli 
= new  mysqli ( "localhost" "root" "" "test" );
$mysqli -> query ( "SELECT 'No proxy installed, yet'" );

class 
proxy  extends  MysqlndUhConnection  {
 public function 
query ( $res $query ) {
   
printf ( "%s(%s)\n" __METHOD__ var_export ( func_get_args (),  true ));
   
$ret  parent :: query ( $res $query );
   
printf ( "%s returns %s\n" __METHOD__ var_export ( $ret true ));
   return 
$ret ;
 }
}
mysqlnd_uh_set_connection_proxy (new  proxy ());

$mysqli -> query ( "SELECT 'mysqlnd rocks!'" );

$mysql  mysql_connect ( "localhost" "root" "" "test" );
mysql_query ( "SELECT 'Ahoy Andrey!'" $mysql );

$pdo  = new  PDO ( "mysql:host=localhost;dbname=test" "root" "" );
$pdo -> query ( "SELECT 'Moin Johannes!'" );
?>

以上例程会输出:

proxy::query(array (
  0 => NULL,
  1 => 'SELECT \'mysqlnd rocks!\'',
))
proxy::query returns true
proxy::query(array (
  0 => NULL,
  1 => 'SELECT \'Ahoy Andrey!\'',
))
proxy::query returns true
proxy::query(array (
  0 => NULL,
  1 => 'SELECT \'Moin Johannes!\'',
))
proxy::query returns true

参见

  • mysqlnd_uh_set_statement_proxy() - Installs a proxy for mysqlnd statements
  • mysqlnd_uh.enable
上一篇: 下一篇: