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_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
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"