Pdo\Sqlite::createFunction
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Pdo\Sqlite::createFunction
Референца за `pdo-sqlite.createfunction.php` со подобрена типографија и навигација.
Pdo\Sqlite::createFunction
Класата Dom\DtdNamedNodeMap
Pdo\Sqlite::createFunction — Регистрира кориснички дефинирана функција за употреба во SQL изрази
= NULL
string
$function_name,callable
$callback,int
$num_args = -1,int
$flags = 0): bool
Овој метод дозволува PHP функции да бидат регистрирани со SQLite како кориснички дефинирана функција, така што може да биде повикана во SQL прашања. Дефинираната функција може да се користи во било кое SQL прашање кое дозволува повици на функции, на пример SELECT, UPDATE, или тригери.
Со користење на овој метод е можно да се презапишат нативни SQL функции.
Параметри
function_name- Името на функцијата што се користи во SQL изрази.
callback-
Повикувачка функција за ракување со дефинираната SQL функција.
Забелешка: Повикувачките функции треба да вратат тип разбирлив од SQLite (т.е. скаларен тип).
Оваа функција треба да биде дефинирана како:
value-
Првиот аргумент што се предава на SQL функцијата.
values-
Понатамошни аргументи што се предаваат на SQL функцијата.
num_args-
Бројот на аргументи што ги зема SQL функцијата. Ако овој параметар е
-1, тогаш SQL функцијата може да земе било кој број на аргументи. flags-
Битови знаменца. Моментално, само
Pdo\Sqlite::DETERMINISTICе поддржано, што специфицира дека функцијата секогаш враќа ист резултат дадени исти влезови во рамките на еден SQL израз.
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true на успех или false при неуспех.
Примери
Пример #1 (PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo_sqlite >= 1.0.0) example
Во овој пример, имаме функција која го пресметува SHA256 збирот на стринг, а потоа го реверзира. Кога SQL изразот ќе се изврши, тој го враќа вредноста на името на датотеката трансформирано од нашата функција. Податоците вратени во $rows содржат обработениот резултат.
Убавината на оваа техника е што нема потреба да се обработува резултатот користејќи foreach јамка по прашањето.
<?php
function sha256_and_reverse($string)
{
return strrev(hash('sha256', $string));
}
$db = new Pdo\Sqlite('sqlite::sqlitedb');
$db->createFunction('sha256rev', 'sha256_and_reverse', 1);
$rows = $db->query('SELECT sha256rev(filename) FROM files')->fetchAll();
?>Види Исто така
- PDO::sqliteCreateAggregate() - Регистрира агрегирана кориснички дефинирана функција за употреба во SQL изрази
- (PHP 5 >= 5.3.11, PHP 7, PHP 8) - Регистрира кориснички дефинирана функција за употреба како функција за споредување во SQL изрази
- sqlite_create_function()
- sqlite_create_aggregate()