PDO::sqliteCreateFunction
(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo_sqlite >= 1.0.0)
PDO::sqliteCreateFunction —
Registriert eine benutzerdefinierte Funktion (UDF) zur Nutzung in
SQL-Anweisungen
Beschreibung
WarnungDiese Funktion ist
EXPERIMENTELL. Das Verhalten, der Funktionsname und die
zugehörige Dokumentation können sich in zukünftigen PHP-Versionen ohne
Ankündigung ändern. Die Verwendung dieser Funktion erfolgt auf eigene Gefahr.
Diese Methode ermöglicht es, in SQLite eine PHP-Funktion als eine
benutzerdefinierte Funktion (UDF) zu registrieren, die
dann in einer SQL-Anweisung aufgerufen werden kann.
Die UDF kann nun in jeder SQL-Anweisung genutzt werden, die Funktionen
aufrufen kann, wie SELECT und UPDATE und auch in Triggern.
Parameter-Liste
-
function_name
-
Der Name der Funktion, der in SQL-Anweisungen genutzt wird.
-
callback
-
Die Callback-Funktion, die die definierte SQL-Funktion verarbeitet.
Hinweis:
Die Callback-Funktionen sollten einen Typ zurückgeben, der von SQLite
verstanden wird, z. B. den
Skalar-Typ.
Diese Funktion muss wie folgt definiert werden:
-
value
-
Das erste Argument, das an die SQL-Funktion übergeben wurde.
-
values
-
Weitere Argumente, die an die SQL-Funktion übergeben wurden.
-
num_args
-
Die Anzahl von Argumenten, die die SQL-Funktion erwartet. Ist dieser
Parameter -1
, dann kann die SQL-Funktion eine
beliebige Anzahl von Argumenten annehmen.
-
flags
-
Eine bitweise Verknüpfung von Flags. Zurzeit wird nur
PDO::SQLITE_DETERMINISTIC
unterstützt, das angibt,
dass die Funktion für dieselbe Eingabe immer dasselbe Ergebnis
innerhalb einer einzelnen SQL-Anweisung zurückgibt.
Rückgabewerte
Gibt bei Erfolg true
zurück. Bei einem Fehler wird false
zurückgegeben.
Beispiele
Beispiel #1 PDO::sqliteCreateFunction()-Beispiel
<?php
function md5_und_umkehren($string)
{
return strrev(md5($string));
}
$db = new PDO('sqlite:sqlitedb');
$db->sqliteCreateFunction('md5rev', 'md5_und_umkehren', 1);
$zeilen = $db->query('SELECT md5rev(dateiname) FROM dateien')->fetchAll();
?>
In diesem Beispiel wird eine Funktion verwendet, die die md5-Checksumme
einer Zeichenkette berechnet und anschließend umgekehrt. Wenn die
SQL-Anweisung ausgeführt wird, gibt sie gibt sie den Wert des Dateinamens
zurück, der von unserer Funktion umgewandelt wurde. Die Rückgabewerte der
Funktion werden in $zeilen
gespeichert.
Das Praktische an dieser Technik ist, dass das Ergebnis der Abfrage nicht
in einer foreach-Schleife nachbearbeitet werden muss.