mysqlnd_uh_convert_to_mysqlnd
mysqlnd_uh_set_statement_proxy
Mysqlnd_uh 関数
PHP Manual

# mysqlnd_uh_set_connection_proxy

(PECL mysqlnd-uh >= 1.0.0-alpha)

mysqlnd_uh_set_connection_proxy — Installs 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`

### 例

例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

mysqlnd_uh_convert_to_mysqlnd
mysqlnd_uh_set_statement_proxy
Mysqlnd_uh 関数
PHP Manual