SQLite3::createFunction

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

SQLite3::createFunctionRegisters a PHP function for use as an SQL scalar function

说明

public SQLite3::createFunction(
    string $name,
    callable $callback,
    int $argCount = -1,
    int $flags = 0
): bool

Registers a PHP function or user-defined function for use as an SQL scalar function for use within SQL statements.

参数

name

Name of the SQL function to be created or redefined.

callback

The name of a PHP function or user-defined function to apply as a callback, defining the behavior of the SQL function.

This function need to be defined as:

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

The first argument passed to the SQL function.

values

Further arguments passed to the SQL function.

argCount

The number of arguments that the SQL function takes. If this parameter is -1, then the SQL function may take any number of arguments.

flags

A bitwise conjunction of flags. Currently, only SQLITE3_DETERMINISTIC is supported, which specifies that the function always returns the same result given the same inputs within a single SQL statement.

返回值

Returns true upon successful creation of the function, false on failure.

更新日志

版本 说明
7.1.4 The flags parameter has been added.

示例

示例 #1 SQLite3::createFunction() example

<?php
function my_udf_md5($string) {
return
hash('md5', $string);
}

$db = new SQLite3('mysqlitedb.db');
$db->createFunction('my_udf_md5', 'my_udf_md5');

var_dump($db->querySingle('SELECT my_udf_md5("test")'));
?>

以上示例的输出类似于:

string(32) "098f6bcd4621d373cade4e832627b4f6"