PHP Conference Nagoya 2025

SQLite3::createCollation

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

SQLite3::createCollationEnregistre une fonction PHP pour l'utiliser comme fonction de classement SQL

Description

public SQLite3::createCollation(string $name, callable $callback): bool

Enregistre une fonction PHP ou une fonction définie par l'utilisateur pour l'utiliser comme fonction de classement dans une requête SQL.

Liste de paramètres

name

Nom de la fonction de classement SQL à créer ou à re-définir.

callback

Le nom d'une fonction PHP ou d'une fonction définie par l'utilisateur à appliquer comme fonction de rappel, définissant le comportement du classement. Elle doit accepter deux arguments et retournera la même chose que la fonction strcmp(), c'est à dire elle doit retourner -1, 1, ou 0 si la première chaîne trie avant, après, ou est équivalent à la seconde.

Cette fonction doit être définit comme :

collation(mixed $value1, mixed $value2): int

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Exemples

Exemple #1 Exemple avec SQLite3::createCollation()

Enregistre la fonction PHP strnatcmp() comme séquence de classement dans la base de données 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
"Par défaut :\n";
while (
$row = $defaultSort->fetchArray()){
echo
$row['col1'], "\n";
}

echo
"\nNaturel :\n";
while (
$row = $naturalSort->fetchArray()){
echo
$row['col1'], "\n";
}

$db->close();

?>

L'exemple ci-dessus va afficher :

Par défaut :
a1
a10
a2

Naturel :
a1
a2
a10

Voir aussi

add a note

User Contributed Notes

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