Php/docs/function.mysqlnd-qc-set-cache-condition
mysqlnd_qc_set_cache_condition
(PECL mysqlnd_qc >= 1.1.0)
mysqlnd_qc_set_cache_condition — Set conditions for automatic caching
说明
mysqlnd_qc_set_cache_condition
(
int
$condition_type
,
mixed
$condition
,
mixed
$condition_option
) : bool
Sets a condition for automatic caching of statements which do not contain the necessary SQL hints to enable caching of them.
参数
condition_type
Type of the condition. The only allowed value is
MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN
.condition
Parameter for the condition set with
condition_type
. Parameter type and structure depend oncondition_type
If
condition_type
equalsMYSQLND_QC_CONDITION_META_SCHEMA_PATTERN
condition
must be a string. The string sets a pattern. Statements are cached if table and database meta data entry of their result sets match the pattern. The pattern is checked for a match with thedb
andorg_table
meta data entries provided by the underlying MySQL client server library. Please, check the MySQL Reference manual for details about the two entries. Thedb
andorg_table
values are concatenated with a dot (.
) before matched againstcondition
. Pattern matching supports the wildcards%
and_
. The wildcard%
will match one or many arbitrary characters._
will match one arbitrary character. The escape symbol is backslash.condition_option
Option for
condition
. Type and structure depend oncondition_type
.If
condition_type
equalsMYSQLND_QC_CONDITION_META_SCHEMA_PATTERN
condition_options
is the TTL to be used.
范例
Example #1 mysqlnd_qc_set_cache_condition() example
<?php/* Cache all accesses to tables with the name "new%" in schema/database "db_example" for 1 second */if (!mysqlnd_qc_set_cache_condition(MYSQLND_QC_CONDITION_META_SCHEMA_PATTERN, "db_example.new%", 1)) { die("Failed to set cache condition!");}$mysqli = new mysqli("host", "user", "password", "db_example", "port");/* cached although no SQL hint given */$mysqli->query("SELECT id, title FROM news");$pdo_mysql = new PDO("mysql:host=host;dbname=db_example;port=port", "user", "password");/* not cached: no SQL hint, no pattern match */$pdo_mysql->query("SELECT id, title FROM latest_news");/* cached: TTL 1 second, pattern match */$pdo_mysql->query("SELECT id, title FROM news");?>
返回值
Returns TRUE on success or FALSE on FAILURE.