PHP Conference Nagoya 2025

Pdo\Sqlite::createCollation

(PHP 8 >= 8.4.0)

Pdo\Sqlite::createCollation Registers a user-defined function for use as a collating function in SQL statements

Descrição

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

This method is similar to Pdo\Sqlite::createFunction() except that it registers functions that are used to collate strings.

Parâmetros

name
Name of the SQL collating function to be created or redefined.
callback
Callback function that defines the behaviour of a collation. It must accept two strings and return -1, 0, or 1 if the first string sorts before, sorts identically, or sorts after the second string respectively. An internal function that behaves like this is strcmp().

This function need to be defined as:

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

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Pdo\Sqlite::createCollation() example

<?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";
}
?>

O exemplo acima produzirá:

a1
a10
a2

a1
a2
a10

Veja Também

adicione uma nota

Notas Enviadas por Usuários (em inglês)

Não há notas de usuários para esta página.
To Top