mirror of
https://github.com/php/php-src.git
synced 2024-10-21 08:22:42 +00:00
55 lines
893 B
Plaintext
55 lines
893 B
Plaintext
|
--TEST--
|
||
|
sqlite: aggregate functions with closures
|
||
|
--INI--
|
||
|
sqlite.assoc_case=0
|
||
|
--SKIPIF--
|
||
|
<?php # vim:ft=php
|
||
|
if (!extension_loaded("sqlite")) print "skip"; ?>
|
||
|
--FILE--
|
||
|
<?php
|
||
|
include "blankdb.inc";
|
||
|
|
||
|
$data = array(
|
||
|
"one",
|
||
|
"two",
|
||
|
"three"
|
||
|
);
|
||
|
|
||
|
sqlite_query("CREATE TABLE strings(a)", $db);
|
||
|
|
||
|
foreach ($data as $str) {
|
||
|
sqlite_query("INSERT INTO strings VALUES('" . sqlite_escape_string($str) . "')", $db);
|
||
|
}
|
||
|
|
||
|
function cat_step(&$context, $string)
|
||
|
{
|
||
|
$context .= $string;
|
||
|
}
|
||
|
|
||
|
function cat_fin(&$context)
|
||
|
{
|
||
|
return $context;
|
||
|
}
|
||
|
|
||
|
sqlite_create_aggregate($db, "cat", function (&$context, $string) {
|
||
|
$context .= $string;
|
||
|
}, function (&$context) {
|
||
|
return $context;
|
||
|
});
|
||
|
|
||
|
$r = sqlite_query("SELECT cat(a) from strings", $db);
|
||
|
while ($row = sqlite_fetch_array($r, SQLITE_NUM)) {
|
||
|
var_dump($row);
|
||
|
}
|
||
|
|
||
|
sqlite_close($db);
|
||
|
|
||
|
echo "DONE!\n";
|
||
|
?>
|
||
|
--EXPECT--
|
||
|
array(1) {
|
||
|
[0]=>
|
||
|
string(11) "onetwothree"
|
||
|
}
|
||
|
DONE!
|