array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'es', ), 'this' => array ( 0 => 'sqlite3.createcollation.php', 1 => 'SQLite3::createCollation', ), 'up' => array ( 0 => 'class.sqlite3.php', 1 => 'SQLite3', ), 'prev' => array ( 0 => 'sqlite3.createaggregate.php', 1 => 'SQLite3::createAggregate', ), 'next' => array ( 0 => 'sqlite3.createfunction.php', 1 => 'SQLite3::createFunction', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'es', 'path' => 'reference/sqlite3/sqlite3/createcollation.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5 >= 5.3.11, PHP 7, PHP 8)
SQLite3::createCollation — Registra una función PHP para ser utilizada como una función SQL de ordenación específica
Registra una función PHP o función definida por el usuario para ser utilizada como una función de ordenación específica dentro de sentencias SQL.
name
Nombre de la función SQL de ordenación específica a ser creada o redefinida
callback
El nombre de una función PHP o función definida por el usuario que se aplicará como retorno de llamada, definiendo el comportamiento de la ordenación. Debe aceptar dos strings y devolver el resultado del mismo modo que lo hace strcmp() , p.e. debe devolver -1, 1, o 0, si el primer string es menor que el segundo, es mayor que el segundo, o es igual al segundo respectivamente.
Ejemplo #1 SQLite3::createCollation()
Registra la función PHP strnatcmp() como una secuencia de ordenación en la base de datos SQLite3.
<?php
$db = new SQLite3(":memory:");
$db->exec("CREATE TABLE test (col1 string)");
$db->exec("INSERT INTO test VALUES ('a1')");
$db->exec("INSERT INTO test VALUES ('a10')");
$db->exec("INSERT INTO test VALUES ('a2')");
$db->createCollation('NATURAL_CMP', 'strnatcmp');
$defaultSort = $db->query("SELECT col1 FROM test ORDER BY col1");
$naturalSort = $db->query("SELECT col1 FROM test ORDER BY col1 COLLATE NATURAL_CMP");
echo "por defecto:\n";
while ($row = $defaultSort->fetchArray()){
echo $row['col1'], "\n";
}
echo "\nnatural:\n";
while ($row = $naturalSort->fetchArray()){
echo $row['col1'], "\n";
}
$db->close();
?>
El resultado del ejemplo sería:
default: a1 a10 a2 natural: a1 a2 a10