Associe une connexion MySQL avec une connexion Memcache

# mysqlnd_memcache_set

(PECL mysqlnd_memcache >= 1.0.0)

mysqlnd_memcache_set — Associe une connexion MySQL avec une connexion Memcache

### Description

mysqlnd_memcache_set ( mixed `$mysql_connection` [, Memcached `$memcache_connection` [, string `$pattern` [, callback `$callback` ]]] ) : bool

Associe une connexion `mysql_connection` avec une connexion `memcache_connection` en utilisant le paramètre `pattern` comme expression rationnelle PCRE, et le paramètre `callback` comme notification de rappel, ou pour réinitialiser l'association de la connexion `mysql_connection`.

Lors de l'association d'une connexion MySQL avec une connexion Memcache, cette fonction va interroger le serveur MySQL pour en connaître sa configuration. Elle va ainsi automatiquement détecter si le serveur est configuré pour utiliser le plugin InnoDB Memcache Daemon, ou le support MySQL Cluster NDB Memcache. Elle va également interroger le serveur afin d'identifier automatiquement les tables exportées, ainsi que d'autres options de configuration. Le résultat de cette configuration automatique peut être récupéré en utilisant la fonction mysqlnd_memcache_get_config().

### Liste de paramètres

`mysql_connection`

  Un gestionnaire de serveur MySQL, en utilisant une des extensions API MySQL de PHP, qui sont PDO_MYSQL, mysqli ou ext/mysql.

`memcache_connection`

  Une instance Memcached avec une connexion au plugin MySQL Memcache Daemon. Si ce paramètre est omis, alors `mysql_connection` sera dé-associée de toute connexion memcache. Et si une précédente association existait, alors elle sera remplacée.

`pattern`

  Une expression rationnelle au format PCRE pour identifier les requêtes potentielles Memcache. La requête doit avoir trois sous-masques. Le premier contient la liste des champs demandés, le second, le nom de la colonne ID depuis la requête, et le troisième, la valeur demandée. Si ce paramètre est omis, ou défini à `NULL`, alors un masque par défaut sera utilisé.

`callback`

  Une fonction de rappel qui sera utilisée à chaque fois que la requête est envoyée à MySQL. Elle ne reçoit qu'un seul paramètre, un booléen, indiquant si la requête a été envoyée via Memcache.

### Valeurs de retour

`TRUE` si l'association ou la dé-association a été un succès, ou `FALSE` si une erreur survient.

### Exemples

Exemple #1 Exemple avec mysqlnd_memcache_set() et var_dump() comme fonction de rappel de déboguage.

`<?php
$mysqli = new mysqli("host", "user", "passwd", "database");
$memc = new Memcached();
$memc->addServer("host", 11211);
mysqlnd_memcache_set($mysqli, $memc, NULL, 'var_dump');
/* Cette requête sera interceptée et exécutée via le protocole Memcache */
echo "Envoi de la requête pour l'ID via Memcache : ";
$mysqli->query("SELECT f1, f2, f3 FROM test WHERE id = 1");
/* f1 n'est pas configuré comme une clé de champ valide, cette requête ne sera pas envoyée via Memcache */
echo "Envoi de la requête pour f1 via Memcache : ";
$mysqli->query("SELECT id FROM test WHERE f1 = 1");
mysqlnd_memcache_set($mysqli);
/* Maintenant, le protocole régulier MySQL sera utilisé */
echo "var_dump ne sera pas appelé : ";
$mysqli->query("SELECT f1, f2, f3 WHERE id = 1");
?>`

L'exemple ci-dessus va afficher :

    Envoi de la requête pour l'ID via Memcache: bool(true)
    Envoi de la requête pour f1 via Memcache: bool(false)
    var_dump ne sera pas appelé :

### Voir aussi

- mysqlnd_memcache_get_config() - Retourne les informations concernant la configuration du plugin