PHP 8.5.0 Alpha 1 available for testing

Pdo\Sqlite::createCollation

(PHP 8 >= 8.4.0)

Pdo\Sqlite::createCollation Registra una función de usuario de ordenación para su uso en las sentencias SQL

Descripción

public Pdo\Sqlite::createCollation(string $name, callable $callback): bool

Este método es similar a Pdo\Sqlite::createFunction() salvo que registra funciones que se utilizan para ordenar strings.

Parámetros

name
El nombre de la función de ordenación SQL a crear o redefinir.
callback
La retrollamada que define el comportamiento de una ordenación. Debe aceptar dos strings y devolver -1, 0, o 1 si el primer string se ordena antes, es idéntico o después del segundo string respectivamente. Una función interna que se comporta de esta manera es strcmp().

Esta función debe ser definida como sigue:

collation(string $string1, string $string2): int

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Ejemplos

Ejemplo #1 Ejemplo de Pdo\Sqlite::createCollation()

<?php
$db
= new Pdo\Sqlite('sqlite::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->sqliteCreateCollation('NATURAL_CMP', 'strnatcmp');
foreach (
$db->query("SELECT col1 FROM test ORDER BY col1") as $row) {
echo
$row['col1'] . "\n";
}
echo
"\n";
foreach (
$db->query("SELECT col1 FROM test ORDER BY col1 COLLATE NATURAL_CMP") as $row) {
echo
$row['col1'] . "\n";
}
?>

El resultado del ejemplo sería:

a1
a10
a2

a1
a2
a10

Ver también

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top