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