mysqlnd_uh_set_connection_proxy

(PECL mysqlnd-uh >= 1.0.0-alpha)

mysqlnd_uh_set_connection_proxyInstalle un proxy pour les connexions mysqlnd

Description

bool mysqlnd_uh_set_connection_proxy ( MysqlndUhConnection &$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 [...].

Liste de paramètres

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.

Valeurs de retour

Retourne TRUE en cas de succès, FALSE sinon.

Exemples

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

Voir aussi

LoadingChargement en cours