SQLite3::createFunction

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

SQLite3::createFunction Registriert eine PHP-Funktion, die als SQL-Skalar-Funktion genutzt werden kann

Beschreibung

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

Registriert eine PHP- oder benutzerdefinierte Funktion, die als SQL-Skalar-Funktion innerhalb einer SQL-Anweisung genutzt werden kann.

Parameter-Liste

name

Name der SQL-Funktion, die erstellt oder neu definiert werden soll.

callback

Der Name der PHP- oder benutzerdefinierten Funktion, welche als Callback-Funktion agieren soll und das Verhalten der SQL-Funktion definiert.

Diese Funktion muss wie folgt definiert werden:

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

Das erste Argument, dass an die SQL-Funktion übergeben wurde.

values

Weitere Argumente, die an die SQL-Funktion übergeben wurden.

argCount

Die Anzahl an Argumenten, die die SQL-Funktion entgegen nimmt. Ist der Parameter gleich -1, ist die SQL-Funktion nicht auf eine Parameteranzahl eingeschränkt.

flags

Ein bitweise Oder-Verknüpfung von Flags. Zurzeit wird nur SQLITE3_DETERMINISTIC unterstützt, das angibt, dass die Funktion in einer einzelnen SQL-Anweisung immer dasselbe Ergebnis für dieselben Eingaben liefert.

Rückgabewerte

Gibt true zurück, wenn die Funktion erfolgreich erstellt wurde. Anderenfalls wird false zurückgegeben.

Changelog

VersionBeschreibung
7.1.4 Der flags-Parameter wurde hinzugefügt.

Beispiele

Beispiel #1 SQLite3::createFunction()-Beispiel

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

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

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

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

string(32) "098f6bcd4621d373cade4e832627b4f6"
To Top