PDO::sqliteCreateFunction

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo_sqlite >= 1.0.0)

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


설명

public PDO::sqliteCreateFunction(
    string $function_name,
    callable $callback,
    int $num_args = -1,
    int $flags = 0
): bool
                

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

이 메서드를 사용하면 SQLite에 PHP 함수를 UDF(사용자 정의 함수)로 등록하여 SQL 문 내에서 호출할 수 있습니다.

UDF는 SELECT 및 UPDATE 문과 같은 함수를 호출할 수 있는 모든 SQL 문과 트리거에서 사용할 수 있습니다.


매개변수

function_name
SQL 문에서 사용되는 함수의 이름입니다.
callback
정의된 SQL 함수를 처리하기 위한 콜백 함수입니다.

참고: 콜백 함수는 SQLite가 이해할 수 있는 유형(즉, 스칼라 유형)을 반환해야 합니다.

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

callback(mixed $value, mixed ...$values): mixed

value
SQL 함수에 전달된 첫 번째 인수입니다.
values
SQL 함수에 추가 인수가 전달되었습니다.
num_args
SQL 함수가 취하는 인수의 수입니다. 이 매개변수가 -1이면 SQL 함수는 여러 인수를 사용할 수 있습니다.
flags
플래그의 비트 연결입니다. 현재 단일 SQL 문 내에서 동일한 입력이 주어지면 함수가 항상 동일한 결과를 반환하도록 지정하는 PDO::SQLITE_DETERMINISTIC만 지원됩니다.

반환 값

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


변경 로그

버전 설명
7.1.4 code>flags 매개변수가 추가되었습니다.

Examples

예제 #1 PDO::sqliteCreateFunction() 예제

                  
<?php
function md5_and_reverse($string)
{
    return strrev(md5($string));
}

$db = new PDO('sqlite:sqlitedb');
$db->sqliteCreateFunction('md5rev', 'md5_and_reverse', 1);
$rows = $db->query('SELECT md5rev(filename) FROM files')->fetchAll();
?>
                  
                

이 예에는 문자열의 md5 합계를 계산한 다음 이를 반대로 하는 함수가 있습니다. SQL 문이 실행될 때 함수에 의해 변환된 파일 이름의 값을 반환합니다. $rows에 반환된 데이터에는 처리된 결과가 포함됩니다.

이 기술의 장점은 데이터를 쿼리한 후 foreach 루프를 사용하여 결과를 처리할 필요가 없다는 것입니다.

PDO::sqliteCreateFunctionPDO::sqliteCreateAggregate를 사용하여 SQLite 기본 SQL 함수를 재정의할 수 있습니다.


기타