(PHP 5 >= 5.3.0, PHP 7, PHP 8)
SQLite3::createFunction — Registriert eine PHP-Funktion, die als SQL-Skalar-Funktion genutzt werden kann
$name
,$callback
,$argCount
= -1,$flags
= 0Registriert eine PHP- oder benutzerdefinierte Funktion, die als SQL-Skalar-Funktion innerhalb einer SQL-Anweisung genutzt werden kann.
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.
Gibt true
zurück, wenn die Funktion erfolgreich erstellt wurde.
Anderenfalls wird false
zurückgegeben.
Version | Beschreibung |
---|---|
7.1.4 |
Der flags -Parameter wurde hinzugefügt.
|
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"