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
)Dé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"); ?>
Valeurs de retour
Retourne TRUE
en cas de succès, FALSE
sinon.