Rechercher une fonction PHP

sqlite_create_function

SQLiteDatabase::createFunction

(PHP 5 < 5.4.0, sqlite >= 1.0.0)

sqlite_create_function -- SQLiteDatabase::createFunction Registriert eine "reguläre" nutzerdefinierte Funktion für den Gebrauch in SQL-Befehlen

Erste Seite von PHP-Handbuch Inhaltsverzeichnis Haut

Beschreibung

sqlite_create_function ( resource $dbhandle , string $function_name , callable $callback [, int $num_args = -1 ] ) : void

Objektorientierter Stil (Methode):

public SQLiteDatabase::createFunction ( string $function_name , callable $callback [, int $num_args = -1 ] ) : void

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.

Erste Seite von PHP-Handbuch Inhaltsverzeichnis Haut

Parameter-Liste

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.

Hinweis: "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.

Hinweis: Zwei alternative Syntaxen werden für die Kompatibilität mit anderen Datenbank-Erweiterungen (wie z.B. MySQL) unterstützt. Die bevorzugte Form ist die erste, bei der der Parameter dbhandle der erste Parameter der Funktion ist.

Erste Seite von PHP-Handbuch Inhaltsverzeichnis Haut

Rückgabewerte

Es wird kein Wert zurückgegeben.

Erste Seite von PHP-Handbuch Inhaltsverzeichnis Haut

Beispiele

Beispiel #1 sqlite_create_function()-Beispiel

<?php
function md5_and_reverse($string
{
    return 
strrev(md5($string));
}

if (
$dbhandle sqlite_open('mysqlitedb'0666$sqliteerror)) {
    
    
sqlite_create_function($dbhandle'md5rev''md5_and_reverse'1);
    
    
$sql  'SELECT md5rev(filename) FROM files';
    
$rows sqlite_array_query($dbhandle$sql);
} else {
    echo 
'Fehler beim Öffnen der Datenbankverbindung: ' $sqliteerror;
    exit;
}
?>

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 #2 Beispiel zur Nutzung einer beliebigen PHP-Funktion

<?php
$rows 
sqlite_array_query($dbhandle"SELECT php('md5', filename) from files");
?>

In diesem Beispiel wird die Funktion md5() für jeden Eintrag der Spalte filename in der Datenbank aufgerufen und das Ergebnis in $rows geschrieben.

Hinweis:

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.

Tipp

Es wird empfohlen, die UDFs nicht für Binärdaten zu nutzen, wenn Ihre Anwendung eine hohe Geschwindigkeit aufweisen soll.

Tipp

sqlite_create_function() und sqlite_create_aggregate() können dazu genutzt werden, native SQlite-Funktionen zu überschreiben.

Erste Seite von PHP-Handbuch Inhaltsverzeichnis Haut

Siehe auch

Finde eine PHP-Funktion

Deutsche Übersetzung

Sie haben gebeten, diese Seite auf Deutsch zu besuchen. Momentan ist nur die Oberfläche übersetzt, aber noch nicht der gesamte Inhalt.

Wenn Sie mir bei Übersetzungen helfen wollen, ist Ihr Beitrag willkommen. Alles, was Sie tun müssen, ist, sich auf der Website zu registrieren und mir eine Nachricht zu schicken, in der Sie gebeten werden, Sie der Gruppe der Übersetzer hinzuzufügen, die Ihnen die Möglichkeit gibt, die gewünschten Seiten zu übersetzen. Ein Link am Ende jeder übersetzten Seite zeigt an, dass Sie der Übersetzer sind und einen Link zu Ihrem Profil haben.

Vielen Dank im Voraus.

Dokument erstellt 30/01/2003, zuletzt geändert 26/10/2018
Quelle des gedruckten Dokuments:https://www.gaudry.be/de/php-rf-function.sqlite-create-function.html

Die Infobro ist eine persönliche Seite, deren Inhalt in meiner alleinigen Verantwortung liegt. Der Text ist unter der CreativeCommons-Lizenz (BY-NC-SA) verfügbar. Weitere Informationen auf die Nutzungsbedingungen und dem Autor.

Referenzen

  1. Zeigen Sie - html-Dokument Sprache des Dokuments:fr Manuel PHP : http://php.net

Diese Verweise und Links verweisen auf Dokumente, die während des Schreibens dieser Seite konsultiert wurden, oder die zusätzliche Informationen liefern können, aber die Autoren dieser Quellen können nicht für den Inhalt dieser Seite verantwortlich gemacht werden.
Der Autor Diese Website ist allein dafür verantwortlich, wie die verschiedenen Konzepte und Freiheiten, die mit den Nachschlagewerken gemacht werden, hier dargestellt werden. Denken Sie daran, dass Sie mehrere Quellinformationen austauschen müssen, um das Risiko von Fehlern zu reduzieren.

Inhaltsverzeichnis Haut