PHP 8.4.2 Released!

Pdo\Sqlite::createCollation

(PHP 8 >= 8.4.0)

Pdo\Sqlite::createCollation Enregistre une fonction utilisateur de tri pour une utilisation dans les instructions SQL

Description

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

Cette méthode est similaire à Pdo\Sqlite::createFunction() sauf qu'elle enregistre des fonctions qui sont utilisées pour trier des chaînes.

Liste de paramètres

name
Le nom de la fonction de tri SQL à créer ou redéfinir.
callback
La fonction de rappel qui définit le comportement d'un tri. Elle doit accepter deux strings et retourner -1, 0, ou 1 si la première chaîne est triée avant, identique, ou après la seconde chaîne respectivement. Une fonction interne qui se comporte de cette manière est strcmp().

Cette fonction doit être définie comme suit :

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

Valeurs de retour

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

Exemples

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

L'exemple ci-dessus va afficher :

a1
a10
a2

a1
a2
a10

Voir aussi

  • Pdo\Sqlite::createFunction() - Enregistre une fonction utilisateur pour une utilisation dans les instructions SQL
  • Pdo\Sqlite::createAggregate() - Enregistre une fonction utilisateur d'agrégation pour une utilisation dans les instructions SQL
  • sqlite_create_function()
  • sqlite_create_aggregate()
add a note

User Contributed Notes

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