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.
  
