PDO::sqliteCreateCollation

(PHP 5 >= 5.3.11, PHP 7)

PDO::sqliteCreateCollation Регистрация пользовательской функции сортировки для использования в SQL-запросах

Описание

public PDO::sqliteCreateCollation ( string $name , callable $callback ) : bool
Внимание

Эта функция является ЭКСПЕРИМЕНТАЛЬНОЙ. Поведение этой функции, ее имя и относящаяся к ней документация могут измениться в последующих версиях PHP без уведомления. Используйте эту функцию на свой страх и риск.

Список параметров

name

Имя функции для использовании в запросах.

callback

Имя функции PHP, либо определенная пользователем функция для использования в качестве функции обратного вызова и определяющая поведение при сортировке. Она должна принимать две строки и возвращать -1 или 1, если первая строка должна располагаться до или после второй строки соответственно, либо 0, если порядок не важен.

Эта функция должна быть определена следующим образом:

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

Возвращаемые значения

Возвращает TRUE в случае успешного завершения или FALSE в случае возникновения ошибки.

Примеры

Пример #1 Пример использования PDO::sqliteCreateCollation()

<?php
$db 
= new PDO('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";
}
?>

Результат выполнения данного примера:

a1
a10
a2

a1
a2
a10

Примечания

Замечание:

Этот метод недоступен с драйвером SQLite2. В этом случае используйте старое sqlite API.