©
本文档使用 PHP中文网手册 发布
(PHP 5 >= 5.3.0)
SQLite3::createAggregate — Registers a PHP function for use as an SQL aggregate function
$name
, mixed $step_callback
, mixed $final_callback
[, int $argument_count
= -1
] )Registers a PHP function or user-defined function for use as an SQL aggregate function for use within SQL statements.
name
Name of the SQL aggregate to be created or redefined.
step_callback
The name of a PHP function or user-defined function to apply as a callback for every item in the aggregate.
final_callback
The name of a PHP function or user-defined function to apply as a callback at the end of the aggregate data.
argument_count
The number of arguments that the SQL aggregate takes. If this parameter is negative, then the SQL aggregate may take any number of arguments.
Returns TRUE
upon successful creation of the aggregate, FALSE
on
failure.
[#1] sukmaagungsaputra at gmail dot com [2015-02-21 05:09:10]
Lacks of example, right?
Let's try to give to SQlite3 the capability like ones of MySQL's
- REGEXP operator,
- MD5 function, and
- GROUP_CONCAT aggregate function
$db = new SQLite3($filename);
$db->createFunction('regexp', function ($a,$b) { return preg_match("/$a/i", $b); });
$db->createFunction('md5', function ($a) { return md5($a); });
$db->createAggregate ('group_concat',
function(&$context, $rownumber, $str) { $context[]=$str; return $context; },
function(&$context) {return implode(",", (array) $context); });