mysqlnd_qc_set_cache_condition

(PECL mysqlnd_qc >= 1.1.0)

mysqlnd_qc_set_cache_conditionDéfinit les conditions pour une mise en cache automatique

Description

bool mysqlnd_qc_set_cache_condition ( int $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.

LoadingChargement en cours