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 без повідомлення. Використовуйте цю функцію на свій страх та ризик.
Цей метод дозволяє вам реєструвати функцію PHP як функцію користувача SQLite (User Defined Function, UDF), що дозволить використовувати її в SQL-запитах.
UDF можна використовувати в будь-якому SQL-запиті, в якому дозволяється використовувати функції, наприклад, SELECT, UPDATE, а також у тригерах.
Список параметрів
function_name
Ім'я функції для використання у запитах.
callback
Функція зворотного дзвінка для обробки дзвінків SQL-функції.
Зауваження: Функція зворотного виклику повинна повертати значення зрозумілого типу SQLite (тобто скалярного типу
Ця функція має бути визначена так:
callback(mixed $value, mixed ...$values): mixed
value
Перший аргумент, що передається в SQL-функцію.
values
Подальші аргументи.
num_args
Кількість аргументів, які приймає функція. Якщо поставити рівним -1
, то функція буде приймати будь-яку кількість аргументів.
flags
Побітова кон'юнкція (АБО) прапорів. На даний момент підтримується лише прапор **PDO::SQLITE_DETERMINISTIC
**що визначає те, що функція завжди повертає однаковий результат для однакових вхідних значень.
Значення, що повертаються
Повертає true
у разі успішного виконання або **false
**в случае возникновения ошибки.
список змін
Версия | Опис |
---|---|
7.1.4 | Добавлен параметрflags |
Приклади
Приклад #1 Приклад використання PDO::sqliteCreateFunction()****
Loading...
У цьому прикладі ми визначили функцію, що обчислює md5 суму рядка і перевертає її. Коли SQL-запит буде запущений, отримані значення filename будуть перетворені цією функцією. Результуючий набір $rows
міститиме перетворені значення.
Краса такого підходу полягає в тому, що вам не потрібно після отримання результуючого набору пробігатися по ньому циклом. foreach для обчислення необхідних значень.
Підказка
Ви можете використовувати PDO::sqliteCreateFunction і PDO::sqliteCreateAggregate для перевизначення стандартних функцій SQLite, що агрегують.
Дивіться також
- PDO::sqliteCreateAggregate
- sqlite_create_function()
- sqlite_create_aggregate()