SQLite (PDO)
PHP Manual

PDO::sqliteCreateCollation

(PHP 5 >= 5.3.11)

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

Descripción

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

Esta función ha sido declarada EXPERIMENTAL. Su comportamiento, su nombre y la documentación que le acompaña puede cambiar sin previo aviso en futuras versiones de PHP. Use esta función bajo su propio riesgo.

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:

int collation ( string $string1 , string $string2 )

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.


SQLite (PDO)
PHP Manual