sqlite_create_function SQLiteDatabase->createFunction Registriert eine "reguläre" nutzerdefinierte Funktion für den Gebrauch in SQL-Befehlen &reftitle.description; voidsqlite_create_function resourcedbhandle stringfunction_name callbackcallback intnum_args-1 Objektorientierter Stil (Methode): SQLiteDatabase voidcreateFunction stringfunction_name callbackcallback intnum_args-1 sqlite_create_function erlaubt Ihnen, eine PHP-Funktion in SQLite als UDF (User Defined Function = Nutzerdefinierte Funktion) zu erzeugen, so dass diese direkt in SQL-Befehlen genutzt werden kann. UDF sind in jedem SQL-Befehl nutzbar, der Funktionsaufrufe wie SELECT, UPDATE oder auch Trigger beinhalten kann. &reftitle.parameters; dbhandle Die Ressource des SQLite-Ergebnisses, erzeugt von sqlite_open wenn in prozeduralem Kontext genutzt. Dieser Parameter wird nicht benötigt, wenn die objektorientierte Notation genutzt wird. function_name Name der Funktion, wie er in den SQL-Befehlen genutzt werden soll. callback Eine beliebige gültige PHP-Funktion oder Methode, die aufgerufen werden soll, um die SQL-Funktion abzuarbeiten. "Callback"-Funktionen sollten einen Variablentyp zurückgeben, der von SQLite erkannt wird (z.B. Skalare). num_args Hinweis für den SQLite-Parser auf die Parameterzahl der "Callback"-Funktion. Es wird empfohlen, diesen Wert zu definieren, wenn Ihre Funktion immer mit der gleichen Parameterzahl arbeitet. &sqlite.param-compat; &reftitle.returnvalues; &return.void; &reftitle.examples; <function>sqlite_create_function</function>-Beispiel ]]> In diesem Beispiel haben wir eine Funktion, die die md5-Summe eines Strings berechnet und dann rückwärts ausliefert. Wenn der SQL-Befehl durchgeführt wird, liefert er den Wert der Spalte "filename" durch unsere Funktion transformiert zurück. Die Daten, die in $rows stehen, enhalten also die bereits gewandelten Daten. Die Eleganz dieser Technik ist das Vermeiden des Durchfahrens des kompletten Abfrageergebnisses mit einer &foreach;-Schleife. PHP registriert außerdem automatisch eine spezielle Funktion mit dem Namen php, wenn die Datenbank dbhandle zum ersten Mal geöffnet wird. Diese Funktion kann genutzt werden, um eine beliebige PHP-Funktion aufzurufen, ohne dass sie zunächst für SQLite erzeugt werden muss. Beispiel zur Nutzung einer beliebigen PHP-Funktion ]]> In diesem Beispiel wird die Funktion md5 für jeden Eintrag der Spalte filename in der Datenbank aufgerufen und das Ergebnis in $rows geschrieben. Aus Performanzgründen kodiert/dekodiert PHP nicht automatisch die Binärdaten der Spalten, die in die UDF/aus der UDF geliefert werden. Daher müssen Sie die Parameter und Rückgabewerte der Funktion jeweils selbst wandeln. Die Funktionen sqlite_udf_encode_binary und sqlite_udf_decode_binary sind dabei behilflich. Es wird empfohlen, die UDFs nicht für Binärdaten zu nutzen, wenn Ihre Anwendung eine hohe Geschwindigkeit aufweisen soll. sqlite_create_function und sqlite_create_aggregate können dazu genutzt werden, native SQlite-Funktionen zu überschreiben. &reftitle.seealso; sqlite_create_aggregate