(PECL mysqlnd_qc >= 1.1.0)
mysqlnd_qc_set_cache_condition — Establece las condiciones para el almacenamiento en caché automático
$condition_type
,
mixed
$condition
,
mixed
$condition_option
) : boolEstablece una condición para el almacenamiento en caché automático de sentencias que no contienen las sugerencias SQL necesarias para habilitar su almacenamiento en dicha caché.
condition_type
El tipo de condición. El único valor permitido es
MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN
.
condition
Parámetro para la condición establecida con condition_type
.
El tipo y la estructura del parámetro depende de condition_type
Si condition_type
es igual a
MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN
,
condition
debe ser una cadena. Ésta establece el patrón.
Las setencias son almacenadas en caché si la tabla y la entrada de los metadatos de la base de datos de sus
conjuntos de resultados coinceiden con el patrón. Dicho patrón se comprueba para ver si coincide con las
entradas de los metadatos db
y org_table
proporcionadas por la biblioteca cliente-servidor de MySQL subyacente. Por favor, revise
el manual de referencias de MySQL para los detalles de las dos entradas. Los valores de
db
y org_table
son
concatenados con un punto (.
) antes de compararlos
con condition
. La comparación de patrones admite
los comodines %
y _
.
El comodín %
coincidirá con uno o varios caracteres
arbitrarios. _
coincidirá con un carácter arbitrario.
El símbolo de escape es la barra invertida.
condition_option
Opción para condition
. El tipo y la estructura dependen
de condition_type
.
Si condition_type
es igual a
MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN
,
condition_options
es el TTL a usar.
Ejemplo #1 Ejemplo de mysqlnd_qc_set_cache_condition()
<?php
/* Almacenar en caché todos los accesos a las tablas con el nombre "new%" en el esquema/base de datos "ejemplo_db" durante 1 segundo */
if (!mysqlnd_qc_set_cache_condition(MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN, "ejemplo_db.new%", 1)) {
die("¡Fallo al establecer la condición de la caché!");
}
$mysqli = new mysqli("host", "usuario", "contraseña", "ejemplo_db", "puerto");
/* almacenada en caché aunque no se proporcione una sugerencia SQL */
$mysqli->query("SELECT id, title FROM news");
$pdo_mysql = new PDO("mysql:host=host;dbname=ejemplo_db;port=puerto", "usuario", "contraseña");
/* no almacenada en caché: sin sugerencia SQL, sin coincidencia con el patrón */
$pdo_mysql->query("SELECT id, title FROM latest_news");
/* almacenada en caché: TTL 1 segundo, coincide con el patrón */
$pdo_mysql->query("SELECT id, title FROM news");
?>
Devuelve TRUE en caso de éxito o FALSE en caso de error.