(PECL mysqlnd-uh >= 1.0.0-alpha)
mysqlnd_uh_set_connection_proxy — Installe un proxy pour les connexions mysqlnd
&$connection_proxy
[, mysqli &$mysqli_connection
] )Installe un objet proxy pour intercepter les méthodes des objets de connexion mysqlnd. Une fois installée, le proxy sera utilisé pour toutes les connexions MySQL ouvertes avec mysqli, mysql ou PDO_MYSQL, en supposant que ces extensions sont compilés pour utiliser la bibliothèque mysqlnd.
La fonction peut être désactivée avec l'option
mysqlnd_uh.enable.
Si mysqlnd_uh.enable
vaut FALSE
, la fonction n'installera pas le proxy et retournera toujours TRUE
.
De plus, une alerte de niveau E_WARNING pourra être émise.
Le message d'erreur sera 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
Un objet proxy de type MysqlndUhConnection.
mysqli_connection
Objet de type mysqli. Si fourni, le proxy ne sera défini que pour cette connexion.
Retourne TRUE
en cas de succès, FALSE
sinon.
Exemple #1 Exemple avec mysqlnd_uh_set_connection_proxy()
<?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 retourne %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!'");
?>
L'exemple ci-dessus va afficher :
proxy::query(array ( 0 => NULL, 1 => 'SELECT \'mysqlnd rocks!\'', )) proxy::query retourne true proxy::query(array ( 0 => NULL, 1 => 'SELECT \'Ahoy Andrey!\'', )) proxy::query retourne true proxy::query(array ( 0 => NULL, 1 => 'SELECT \'Moin Johannes!\'', )) proxy::query retourne true