PDO::sqliteCreateCollation

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

PDO::sqliteCreateCollation — SQL 문에서 조합 함수로 사용할 사용자 정의 함수를 등록합니다.


설명

public PDO::sqliteCreateCollation(string $name, callable $callback): bool

경고 이 함수는 실험적입니다. 이 함수의 동작, 해당 이름 및 주변 문서는 PHP의 향후 릴리스에서 예고 없이 변경될 수 있습니다. 이 함수는 사용자의 책임하에 사용해야 합니다.


매개변수

name
생성 또는 재정의할 SQL 조합 함수의 이름입니다.
callback
콜백으로 적용할 PHP 함수 또는 사용자 정의 함수의 이름으로, 데이터 정렬 동작을 정의합니다. 두 개의 문자열을 허용하고 strcmp() 처럼 반환해야 합니다. 즉, 첫 번째 문자열이 이전에 정렬되거나 이후에 정렬되거나 두 번째 문자열과 같으면 -1, 1 또는 0을 반환해야 합니다.

이 함수는 다음과 같이 정의해야 합니다.

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


반환 값

성공하면 true를, 실패하면 false를 반환합니다.


Examples

예제 #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