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
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:
-
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_DETERMINISTICunterstü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
| Version | Beschreibung |
|---|---|
| 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"

