(PHP 5 >= 5.3.11, PHP 7, PHP 8)
SQLite3::createCollation — Enregistre une fonction PHP pour l'utiliser comme fonction de classement SQL
Enregistre une fonction PHP ou une fonction définie par l'utilisateur pour l'utiliser comme fonction de classement dans une requête SQL.
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 :
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