mysqlnd_qc_set_cache_condition
(PECL mysqlnd_qc >= 1.1.0)
mysqlnd_qc_set_cache_condition — Définit les conditions pour une mise en cache automatique
Description
$condition_type
,
mixed
$condition
,
mixed
$condition_option
) : boolDéfinit une condition pour une mise en cache automatique de requêtes qui ne contiennent pas nécessairement d'astuces SQL pour l'activation de la mise en cache.
Liste de paramètres
-
condition_type
-
Type de condition. La seule valeur autorisée est
MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN
. -
condition
-
Paramètre pour la condition définie avec condition_type. Le type et la structure du paramètre dépendent de condition_type
Si condition_type vaut MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN, condition doit être une chaîne. La chaîne définit un masque. Les requêtes sont mises en cache si l'entrée des méta-données table et base de données de leurs jeux de résultats correspond au masque. Le masque est vérifiée pour une correspondance avec les entrées méta-données db et org_table fournis par la bibliothèque MySQL client serveur sous-jacente. Reportez-vous au manuel de référence MySQL pour plus de détails sur ces deux entrées. Les valeurs db et org_table sont concaténées avec un point (.) avant de tenter une équivalence avec la condition. La recherche de correspondance supporte les jokers % et _. Le joker % va faire correspondre un ou plusieurs caractères arbitraires. Le joker _ va faire correspondre une seule caractère arbitraire. Le caractère d'échappement est l'anti-slashes (\).
-
condition_option
-
Option pour la conditionLe type et la structure dépendent de condition_type.
Si condition_type vaut MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN, condition_options sera le TTL à utiliser.
Exemples
Exemple #1 Exemple avec mysqlnd_qc_set_cache_condition()
<?php
/* Met en cache tous les accès aux tables dont le nom est "new%" dans le schéma/base de données "db_example"
pendant une seconde */
if (!mysqlnd_qc_set_cache_condition(MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN, "db_example.new%", 1)) {
die("Echec lors de la définition d'une condition de mise en cache !");
}
$mysqli = new mysqli("host", "user", "password", "db_example", "port");
/* Mise en cache, malgré l'absence d'astuce SQL */
$mysqli->query("SELECT id, title FROM news");
$pdo_mysql = new PDO("mysql:host=host;dbname=db_example;port=port", "user", "password");
/* Non mise en cache : aucune astuce SQL, aucun masque ne correspond */
$pdo_mysql->query("SELECT id, title FROM latest_news");
/* Mise en cache : TTL d'une seconde, masque trouvé */
$pdo_mysql->query("SELECT id, title FROM news");
?>
Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-mysqlnd-qc-set-cache-condition.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.