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
string
$function_name,callable
$callback,int
$num_args = -1,int
$flags = 0): bool
Diese Funktion ist EXPERIMENTELL. Das Verhalten, der Funktionsname und die die zugehörige Dokumentation, können sich in zukünftigen PHP-Versionen ohne Ankündigung ändern. Seien Sie gewarnt und verwenden Sie diese Funktion auf eigenes Risiko.
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_DETERMINISTICunterstü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.
  
Changelog
| Version | Beschreibung | 
|---|---|
| 7.1.4 | 
       Der Parameter flags wurde hinzugefügt.
       | 
     
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.
Sie können PDO::sqliteCreateFunction und PDO::sqliteCreateAggregate nutzen, um native SQLite-SQL-Funktionen zu überschreiben.
                    
                    
                    
                    
                    
          