PHP 8.4.1 Released!

PDO::sqliteCreateCollation

(PHP 5 >= 5.3.11, PHP 7, PHP 8)

PDO::sqliteCreateCollation Registra una función definida por el usuario para emplearla como función de cotejo en sentencias SQL

Descripción

public PDO::sqliteCreateCollation(string $name, callable $callback): bool
Advertencia

Esta función ha sido declarada EXPERIMENTAL. Su funcionamiento, nombre y la documentación que le acompaña puede cambiar sin previo aviso en futuras versiones de PHP. Utilícela bajo su propia responsabilidad.

Parámetros

name

Nombre de la función de cotejo de SQL a crear o redefinir.

callback

El nombre de una función de PHP o una definida por el usuario para aplicarla como retrollamada, definiendo el comportamiento del cotejamiento. Debería aceptar dos cadenas y devolver lo mismo que strcmp(), es decir, debería devolver -1, 1, o 0 si la primera cadena es anterior en orden, posterior, o es igual a la segunda.

Es necesario definir esta función como:

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::sqliteCreateCollation()

<?php
$bd
= new PDO('sqlite::memory:');
$bd->exec("CREATE TABLE test (col1 string)");
$bd->exec("INSERT INTO test VALUES ('a1')");
$bd->exec("INSERT INTO test VALUES ('a10')");
$bd->exec("INSERT INTO test VALUES ('a2')");

$bd->sqliteCreateCollation('NATURAL_CMP', 'strnatcmp');
foreach (
$bd->query("SELECT col1 FROM test ORDER BY col1") as $fila) {
echo
$fila['col1'] . "\n";
}
echo
"\n";
foreach (
$bd->query("SELECT col1 FROM test ORDER BY col1 COLLATE NATURAL_CMP") as $fila) {
echo
$fila['col1'] . "\n";
}
?>

El resultado del ejemplo sería:

a1
a10
a2

a1
a2
a10

Notas

Nota:

Este método no está disponible con el controlador de SQLite2. Use la API de sqlite del estilo antiguo en su lugar.

add a note

User Contributed Notes

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