(PHP 5 >= 5.3.0, PHP 7)
SQLite3::createFunction — Registriert eine PHP-Funktion, die als SQL-Skalar-Funktion genutzt werden kann
$name
, mixed $callback
[, int $argument_count
= -1
[, int $flags
= 0
]] ) : boolRegistriert 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:
value1
Das erste Argument, dass an die SQL-Funktion übergeben wurde.
...
Weitere Argumente, die an die SQL-Funktion übergeben wurden.
argument_count
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"