Registriert eine PHP-Funktion, die als SQL-Skalar-Funktion genutzt werden kann

# 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

public function SQLite3::createFunction(
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:

  function callback(mixed `$value`, mixed `...$values`): mixed
  `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 hash('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"

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open