PostgreSQL-Funktionen. LXXX. Datenbankgröße der PostgreSQL-Funktionen

Standardvorlagenbibliothek ( Standardvorlagenbibliothek , STL) ist in der Standardbibliothek der C++-Sprache enthalten. Es umfasst Implementierungen der am häufigsten verwendeten Container und Algorithmen, was Programmierern die Routine erspart, sie immer wieder neu zu schreiben. Bei der Entwicklung von Containern und den darauf angewendeten Algorithmen (z. B. Entfernen identischer Elemente, Sortieren, Suchen usw.) müssen häufig Abstriche bei der Vielseitigkeit oder der Leistung gemacht werden. Die STL-Entwickler haben es sich jedoch zur Aufgabe gemacht, die Bibliothek sowohl effizient als auch universell zu gestalten. Um dieses Problem zu lösen, wurden universelle Mittel der C++-Sprache wie Vorlagen und Operatorüberladung verwendet. In der folgenden Präsentation stützen wir uns auf die von Microsoft bereitgestellte STL-Implementierung zusammen mit dem Visual C++ 6.0-Compiler. Die meisten der oben genannten Punkte gelten jedoch auch für STL-Implementierungen durch andere Compiler.

Die Hauptkonzepte in STL sind die Konzepte Container (Container), Algorithmus (Algorithmus) und Iterator (Iterator).

Containerist ein Speicher von Objekten (sowohl integrierte als auch benutzerdefinierte Typen). Typischerweise werden Container als Klassenvorlagen implementiert. Die einfachsten Containertypen (statische und dynamische Arrays) sind direkt in die Sprache C++ integriert. Darüber hinaus umfasst die Standardbibliothek Implementierungen von Containern wie Vektor, Liste, Warteschlange, Karte, Set und einigen anderen.

Algorithmusist eine Funktion zum Bearbeiten von Objekten, die in einem Container enthalten sind. Typische Beispiele für Algorithmen sind Sortieren und Suchen. Die STL implementiert etwa 60 Algorithmen, die auf verschiedene Container angewendet werden können, einschließlich in die Sprache C++ integrierter Arrays.

Iteratorist eine Abstraktion eines Zeigers, also eines Objekts, das auf andere im Container enthaltene Objekte verweisen kann. Die Hauptfunktionen eines Iterators bestehen darin, Zugriff auf das Objekt bereitzustellen, auf das er verweist (Dereferenzierung), und von einem Containerelement zu einem anderen zu wechseln (Iteration, daher der Name Iterator). Für integrierte Container werden reguläre Zeiger als Iteratoren verwendet. Bei komplexeren Containern werden Iteratoren als Klassen mit einer Reihe überladener Operatoren implementiert.

Zusätzlich zu den markierten Elementen in der STL gibt es eine Nummer Hilfsbegriffe ; Einige davon sollten Sie auch kennenlernen.

Allokator(Allocator) ist ein Objekt, das für die Speicherzuweisung für Containerelemente verantwortlich ist. Jedem Standardcontainer ist ein Allokator zugeordnet (sein Typ wird als einer der Vorlagenparameter übergeben). Wenn ein Algorithmus Speicher für Elemente zuweisen muss, muss er dies über einen Allokator tun. In diesem Fall können Sie sicher sein, dass verteilte Objekte korrekt zerstört werden.

Die STL enthält eine Standard-Allocator-Klasse (beschrieben in der xmemory-Datei). Dies wird standardmäßig von allen im STL implementierten Containern verwendet. Der Benutzer kann jedoch seine eigene Klasse implementieren. Dies ist sehr selten notwendig, kann aber manchmal aus Effizienz- oder Debugging-Zwecken durchgeführt werden.

Lassen Sie uns näher auf die Betrachtung der eingeführten Konzepte eingehen.

Behälter . Jeder Container stellt eine streng definierte Schnittstelle bereit, über die Algorithmen mit ihm interagieren. Containerspezifische Iteratoren stellen diese Schnittstelle bereit. Es ist wichtig zu betonen, dass keine zusätzlichen Mitgliedsfunktionen für die Interaktion zwischen Algorithmen und Containern verwendet werden. Dies geschieht, weil Standardalgorithmen funktionieren müssen, einschließlich der integrierten Container der C++-Sprache, die über Iteratoren (Zeiger) verfügen, aber sonst nichts. Wenn Sie also Ihren eigenen Container erstellen, ist die Implementierung eines Iterators das absolute Minimum.

Jeder Container implementiert einen bestimmten Iteratortyp. Dadurch wird der funktionalste Iteratortyp ausgewählt, der für einen bestimmten Container effektiv implementiert werden kann. „Effizient“ bedeutet, dass die Geschwindigkeit der Ausführung von Operationen am Iterator nicht von der Anzahl der Elemente im Container abhängen sollte. Beispielsweise wird ein Iterator mit wahlfreiem Zugriff für einen Vektor und ein bidirektionaler Iterator für eine Liste implementiert. Da die Geschwindigkeit einer Listenoperation linear von ihrer Länge abhängt, ist kein Direktzugriffsiterator für eine Liste implementiert.

Unabhängig von der tatsächlichen Organisation des Containers (Vektor, Liste, Baum) können die darin gespeicherten Elemente als Sequenz betrachtet werden. Der Iterator des ersten Elements in dieser Sequenz wird von der Funktion begin() zurückgegeben, und der Iterator des Elements, das auf das letzte folgt, wird von der Funktion end() zurückgegeben. Dies ist sehr wichtig, da alle Algorithmen in STL präzise mit Sequenzen arbeiten, die durch Start- und End-Iteratoren angegeben werden.

Zusätzlich zu regulären Iteratoren in der STL gibt es Reverse-Iteratoren ( Reverse-Iterator ). Ein umgekehrter Iterator unterscheidet sich dadurch, dass er die Folge von Elementen in einem Container in umgekehrter Reihenfolge durchläuft. Mit anderen Worten: Die Operationen + und – werden umgekehrt. Dadurch können die Algorithmen sowohl auf direkte als auch auf umgekehrte Folgen von Elementen angewendet werden. Mit der Suchfunktion können Sie beispielsweise nach Elementen sowohl am „Anfang“ als auch am „Ende“ eines Containers suchen.

In STL werden Container in drei Hauptgruppen unterteilt (Tabelle 2): Sequenzcontainer, assoziative Container und Containeradapter. Die ersten beiden Gruppen werden zu First-Class-Containern zusammengefasst.

Tabelle 2

Containerklasse STL

Beschreibung

Sequenzcontainer

Vektor

Dynamisches Array

deque

Bidirektionale Warteschlange

Liste

Bidirektionale lineare Liste

Assoziative Container

Assoziativer Container mit eindeutigen Schlüsseln

Multiset

Assoziativer Container, der doppelte Schlüssel ermöglicht

Assoziativer Container für Sätze eindeutiger Elemente

Multimap

Assoziativer Container für Mengen mit doppelten Elementen

Containeradapter

Stapel

Standardstapel

Warteschlange

Standardwarteschlange

Prioritätswarteschlange

Prioritätswarteschlange

Jede Containerklasse ist implementiert in STL , beschreibt den Satz von Typen, die dem Container zugeordnet sind. Sie sollten beim Schreiben Ihrer eigenen Container dieselbe Vorgehensweise anwenden. Hier eine Auflistung der wichtigsten Typen:

value_type – Elementtyp;

size_type - ein Typ zum Speichern der Anzahl der Elemente (normalerweise size_t);

Iterator - Iterator für Containerelemente;

Schlüsselart - Schlüsseltyp (in einem assoziativen Container).

Zusätzlich zu den Typen können wir eine Reihe von Funktionen unterscheiden, die fast jeder Container in STL implementiert (Tabelle 3). Sie sind für die Interaktion mit Algorithmen nicht erforderlich, ihre Implementierung verbessert jedoch die Austauschbarkeit von Containern im Programm. STL ist so konzipiert, dass Container eine ähnliche Funktionalität bieten.

Tisch 3

Gemeinsame Methoden aller STL-Container

Beschreibung

Standardkonstruktor

Standardkonstruktor. Normalerweise enthält ein Container mehrere Designer

Konstruktor kopieren

Konstruktor kopieren

Zerstörer

Zerstörer

leer

Gibt true zurück, wenn der Container keine Elemente enthält, andernfalls false

maximale Größe

Gibt die maximale Anzahl von Elementen für einen Container zurück

Größe

Gibt die Anzahl der Elemente im Container zum aktuellen Zeitpunkt zurück

Operator =

Weist einen Container einem anderen zu

Operator<

Gibt true zurück, wenn der erste Container kleiner als der zweite ist, andernfalls false

Operator<=

Gibt true zurück, wenn der erste Container nicht größer als der zweite ist, andernfalls false

Betreiber >

Gibt true zurück, wenn der erste Container größer als der zweite ist, andernfalls false

Operator >=

Gibt true zurück, wenn der erste Container nicht kleiner als der zweite ist, andernfalls false

Operator ==

Gibt true zurück, wenn die verglichenen Container gleich sind, andernfalls false

Operator !=

Gibt true zurück, wenn die verglichenen Container nicht gleich sind, andernfalls false

tauschen

Tauscht Elemente zweier Container aus

Funktionen, die nur in First-Class-Containern verfügbar sind

beginnen

Zwei Versionen dieser Funktion geben entweder einen Iterator oder einen const_iterator zurück, der auf das erste Element des Containers verweist

Zwei Versionen dieser Funktion geben entweder einen Iterator oder einen const_iterator zurück, der auf die nächste Position nach dem Ende des Containers verweist

rbeginnen

Zwei Versionen dieser Funktion geben beides zurück reverse_iterator oder reverse_const_iterator , was sich auf das letzte Element des Containers bezieht

zerreißen

Zwei Versionen dieser Funktion geben entweder einen reverse_iterator oder einen reverse_const_iterator zurück, der sich auf die Position vor dem ersten Element des Containers bezieht

einfügen, löschen,

Ermöglicht das Einfügen oder Entfernen von Elementen in der Mitte einer Sequenz

Beistelltisch 3

klar

Entfernt alle Elemente aus einem Container

Vorne Hinten

push_back, pop_back

Ermöglicht das Hinzufügen oder Entfernen des letzten Elements in einer Sequenz

push_front, pop_front

Ermöglicht das Hinzufügen oder Entfernen des ersten Elements in einer Sequenz

Iteratoren werden in der Regel als Freunde der Klassen erstellt, mit denen sie arbeiten, und ermöglichen so den direkten Zugriff auf die privaten Daten dieser Klassen. Einem einzelnen Container können mehrere Iteratoren zugeordnet sein, von denen jeder seine eigenen „Positionsinformationen“ verwaltet (Tabelle 4).

Tabelle 4

Iteratortyp

Zugang

Dereferenzierung

Wiederholung

Vergleich

Ausgabeiterator

(Ausgabeiterator)

Nur Aufnahme

Eingabe-Iterator

(Eingabeiterator)

Nur lesen

*, ->

==, !=

Weiterleitungsiterator

(Vorwärtsiterator)

Lesen und Schreiben

*, ->

==, !=

Bidirektionaler Iterator(bidirektionaler Iterator)

Lesen und Schreiben

*, ->

++, --

==, !=

Iterator mit wahlfreiem Zugriff

(zufälliger Zugriff auf Iterator)

Lesen und Schreiben

*, ->,

++, --, +, -, +=, -=

==, !=, <, <=, >, >=

pg_update (Ressource $connection , Zeichenfolge $table_name , Array $data , Array $condition [, int $options = PGSQL_DML_EXEC ])

pg_update() ersetzt Datensätze in der Tabelle, die die Bedingungen erfüllen Zustand Daten Daten. Wenn ein Argument angegeben wird Optionen, werden die Daten von der Funktion transformiert pg_convert(), an den die Parameter aus diesem Argument übergeben werden.

Liste der Parameter

Verbindungsressource für die PostgreSQL-Datenbank.

Tabellenname

Der Name der Tabelle, in der die Datensätze aktualisiert werden.

Array( Array), deren Schlüssel den Namen der Spalten der Tabelle table_name entsprechen und deren Werte die Daten in diesen Spalten ersetzen.

Zustand

Array( Array), deren Schlüssel den Namen der Spalten der Tabelle Tabellenname entsprechen. Es werden nur die Zeilen aktualisiert, deren Feldwerte mit den Array-Werten übereinstimmen.

Optionen

Eine der Konstanten PGSQL_CONV_OPTS, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC oder PGSQL_DML_STRING oder eine Kombination davon. Wenn Optionen enthält PGSQL_DML_STRING, gibt die Funktion eine Zeichenfolge zurück. Falls installiert PGSQL_DML_NO_CONV oder PGSQL_DML_ESCAPE, dann die Funktion pg_convert() nicht intern aufgerufen.

Rückgabewerte

Kehrt zurück WAHR nach erfolgreichem Abschluss bzw FALSCH im Falle eines Fehlers. Die Funktion gibt die Zeichenfolge zurück ( Zeichenfolge), wenn konstant PGSQL_DML_STRING in Optionen enthalten.

Beispiele

Beispiel Nr. 1 Anwendungsbeispiel pg_update()

$db = pg_connect("dbname=foo" );
$data = array("field1" => "AA", "field2" => "BB" );

// Dies ist sicher, da $_POST automatisch konvertiert wird
$res = pg_update ($db, "post_log", $_POST, $data);
if ($res) (
Echo „Daten aktualisiert:$res\n" ;
) anders (
Echo „Es müssen ungültige Daten gesendet worden sein\n“;
}
?>

pg_update (Ressource $connection , Zeichenfolge $table_name , Array $data , Array $condition [, int $options = PGSQL_DML_EXEC ])

pg_update() ersetzt Datensätze in der Tabelle, die die Bedingungen erfüllen Zustand Daten Daten. Wenn ein Argument angegeben wird Optionen, werden die Daten von der Funktion transformiert pg_convert(), an den die Parameter aus diesem Argument übergeben werden.

Liste der Parameter

Verbindungsressource für die PostgreSQL-Datenbank.

Tabellenname

Der Name der Tabelle, in der die Datensätze aktualisiert werden.

Array( Array), deren Schlüssel den Namen der Spalten der Tabelle table_name entsprechen und deren Werte die Daten in diesen Spalten ersetzen.

Zustand

Array( Array), deren Schlüssel den Namen der Spalten der Tabelle Tabellenname entsprechen. Es werden nur die Zeilen aktualisiert, deren Feldwerte mit den Array-Werten übereinstimmen.

Optionen

Eine der Konstanten PGSQL_CONV_OPTS, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC oder PGSQL_DML_STRING oder eine Kombination davon. Wenn Optionen enthält PGSQL_DML_STRING, gibt die Funktion eine Zeichenfolge zurück. Falls installiert PGSQL_DML_NO_CONV oder PGSQL_DML_ESCAPE, dann die Funktion pg_convert() nicht intern aufgerufen.

Rückgabewerte

Kehrt zurück WAHR nach erfolgreichem Abschluss bzw FALSCH im Falle eines Fehlers. Die Funktion gibt die Zeichenfolge zurück ( Zeichenfolge), wenn konstant PGSQL_DML_STRING in Optionen enthalten.

Beispiele

Beispiel Nr. 1 Anwendungsbeispiel pg_update()

$db = pg_connect("dbname=foo" );
$data = array("field1" => "AA", "field2" => "BB" );

// Dies ist sicher, da $_POST automatisch konvertiert wird
$res = pg_update ($db, "post_log", $_POST, $data);
if ($res) (
Echo „Daten aktualisiert:$res\n" ;
) anders (
Echo „Es müssen ungültige Daten gesendet worden sein\n“;
}
?>

Postgres, ursprünglich von der Informatikabteilung der UC Berkeley entwickelt, war Vorreiter für viele der objektorientierten Konzepte, die heute in einigen kommerziellen Datenbanken verfügbar sind. Es bietet Unterstützung für die Sprache SQL92/SQL99, Transaktionsintegrität und Typerweiterbarkeit. PostgreSQL ist ein Open-Source-Nachkomme des ursprünglichen Berkeley-Codes.

PostgreSQL ist ein kostenlos erhältliches Produkt. Um die PostgreSQL-Unterstützung nutzen zu können, benötigen Sie PostgreSQL 6.5 oder höher. PostgreSQL 7.0 oder höher – für alle Funktionen des PostgreSQL-Moduls. PostgreSQL unterstützt viele Zeichenkodierungen, einschließlich Multibyte-Zeichenkodierungen. Die aktuelle Version und Informationen zu PostgreSQL finden Sie unter http://www.postgresql.org/.

Um die PostgreSQL-Unterstützung zu aktivieren, ist beim Kompilieren von PHP die Option --with-pgsql[=DIR] erforderlich. Wenn das Shared Objects-Modul verfügbar ist, kann das PostgreSQL-Modul mithilfe der Erweiterungsanweisung in der php.ini-Datei oder der Funktion geladen werden dl(). Unterstützte INI-Anweisungen werden in der Datei php.ini-dist beschrieben, die mit dem Quellcode der Distribution geliefert wird.

Tabelle 1. Funktionsname ändert sich
Alte BezeichnungNeuer Name
pg_exec() pg_query()
pg_getlastoid() pg_last_oid()
pg_cmdtuples() pg_affected_rows()
pg_numrows() pg_num_rows()
pg_numfields() pg_num_fields()
pg_fieldname() pg_field_name()
pg_fieldsize() pg_field_size()
pg_fieldnum() pg_field_num()
pg_fieldprtlen() pg_field_prtlen()
pg_fieldisnull() pg_field_is_null()
pg_freeresult() pg_free_result()
pg_result() pg_fetch_result()
pg_loreadall() pg_lo_read_all()
pg_locreate() pg_lo_create()
pg_lounlink() pg_lo_unlink()
pg_loopen() pg_lo_open()
pg_loclose() pg_lo_close()
pg_loread() pg_lo_read()
pg_lowrite() pg_lo_write()
pg_loimport() pg_lo_import()
pg_loexport() pg_lo_export()

Nicht alle Funktionen werden in allen Builds unterstützt. Dies hängt von der Version Ihrer libpq (der PostgreSQL-C-Client-Schnittstelle) und davon ab, wie libpq kompiliert wird. Wenn eine Funktion fehlt, unterstützt libpq die für diese Funktion erforderlichen Funktionen nicht.

Es ist außerdem wichtig, dass Sie eine libpq verwenden, die neuer ist als der PostgreSQL-Server, zu dem Sie eine Verbindung herstellen. Wenn Sie eine libpq verwenden, die älter ist als von PostgreSQL Server erwartet, treten Probleme auf.

Seit Version 6.3 (03.02.1998) verwendet PostgreSQL standardmäßig einen Unix-Domain-Socket. Der TCP-Port ist standardmäßig NICHT geöffnet. Die Tabelle beschreibt diese neuen Verbindungsoptionen. Dieser Socket befindet sich in /tmp/.s.PGSQL.5432. Diese Option kann mit dem Flag „-i“ aktiviert werden Postmeister, und sein Wert wird sein: „Überwacht sowohl TCP/IP-Sockets als auch Unix-Domänen-Sockets.“

Tabelle 2. Postmaster und PHP

Mit folgenden Wertepaaren auf der Kommandozeile kann eine Verbindung zum PostgreSQL-Server hergestellt werden: $conn = pg_connect("host=myHost port=myPort tty=myTTY options=myOptions dbname=myDB user=myUser password=myPassword ");

Bisherige Syntax: $conn = pg_connect("host", "port", "options", "tty", "dbname") wird nicht mehr empfohlen.

Umgebungsvariablen beeinflussen das Verhalten des PostgreSQL-Servers/-Clients. Beispielsweise sucht das PostgreSQL-Modul nach der Umgebungsvariablen PGHOST, wenn der Hostname nicht in der Verbindungszeichenfolge enthalten ist. Die unterstützten Umgebungsvariablen unterscheiden sich je nach Version. Weitere Informationen finden Sie im PostgreSQL-Programmiererhandbuch (libpq – Umgebungsvariablen).

Stellen Sie sicher, dass Sie die Umgebungsvariablen für den entsprechenden Benutzer festlegen. Verwenden Sie $_ENV oder getenv() um zu prüfen, welche Umgebungsvariablen für den aktuellen Prozess verfügbar sind.

Ab PostgreSQL 7.1.0 können Sie 1 GB in einem Textfeld speichern. Bei älteren Versionen gelten möglicherweise Einschränkungen hinsichtlich der Blockgröße (der Standardwert lag bei 8 KB, der Höchstwert bei 32 KB, festgelegt bei der Kompilierung).

Um die Schnittstelle für große Objekte (lo) verwenden zu können, müssen Sie lo-Funktionen in den Transaktionsblock einschließen. Ein Transaktionsblock beginnt mit einer SQL-Anweisung BEGINNEN, und wenn die Transaktion korrekt war, wird sie beendet BEGEHEN oder ENDE. Wenn eine Transaktion fehlschlägt, muss sie mit geschlossen werden ROLLBACK oder ABBRECHEN.

Sie sollten die Verbindung zum PostgreSQL-Server nicht schließen, bevor Sie das große Objekt geschlossen haben.

Inhalt pg_affeded_rows – gibt die Anzahl der beteiligten Einträge zurück (Steam/Tupel) pg_cancel_query – bricht die asynchrone Anfrage ab pg_client_encoding – empfängt Kundencode pg_close – schließt die PostgreSQL-Verbindung PG_ConNNECT – öffnet Posteg Rescl-Verbindung PG_ConNECTION_BUSY – empfängt, ob die Verbindung geschlossen ist oder nicht pg_connection_Reset – stellt die wieder her Verbindung (erneut verbinden) pg_connection_status – ruft den Verbindungsstatus ab pg_convert – wandelt den Wert eines assoziativen Arrays in einen für die SQL-Anweisung geeigneten Wert um pg_copy_from – fügt Datensätze aus einem Array in eine Tabelle ein pg_copy_to – kopiert eine Tabelle in ein Array pg_dbname – ruft den Datenbanknamen ab pg_delete – löscht Datensätze pg_end_copy – synchronisiert mit dem PostgreSQL-Backend pg_escape_bytea – mnemonisiert die /escape-Binärdatei für den Bytetyp pg_escape_string – mnemonisiert die Zeichenfolge für den Typ text/char pg_fetch_array – ruft eine Zeile als Array ab pg_fetch_object – ruft eine Zeile als Objekt ab pg_fetch_result – gibt Werte zurück aus der resultierenden Ressource pg_fetch_row – ruft eine Zeile als aufzählbares Array ab pg_field_is_null – prüft, ob ein Feld vorhanden ist NULL pg_field_name – gibt den Namen des Feldes zurück pg_field_num – gibt die Nummer des benannten Feldes zurück pg_field_prtlen – gibt die druckbare Größe zurück pg_field_size – gibt die interne Speichergröße des benannten Feldes zurück pg_field_type – gibt den Typnamen für die entsprechende Feldnummer zurück

(PHP 4 >= 4.3.0, PHP 5, PHP 7)

pg_convert — Konvertiert die Werte eines assoziativen Arrays in akzeptable Werte für die Verwendung in SQL-Abfragen

Beschreibung

pg_convert (Ressource $connection , Zeichenfolge $table_name , Array $assoc_array [, int $options = 0]): Array

pg_convert() prüft und konvertiert Werte von assoc_array in solche, die für den SQL-Server akzeptabel sind. Die Tabelle Tabellenname muss vorhanden sein und die Anzahl der darin enthaltenen Spalten darf nicht kleiner sein als die Werte im Array assoc_array. Die Spaltennamen in der Tabelle table_name müssen mit den Schlüsseln des Arrays assoc_array übereinstimmen, und die Datentypen der Array-Werte müssen auch mit den Datentypen der entsprechenden Spalten übereinstimmen. Wenn die Konvertierung erfolgreich ist, gibt die Funktion ein Array konvertierter Werte zurück, andernfalls wird zurückgegeben FALSCH.

Kommentar:

Ab PHP 5.6.0 sind boolesche Werte erlaubt. Sie werden in den booleschen PostgreSQL-Typ konvertiert. String-Darstellungen eines booleschen Werts werden ebenfalls unterstützt. NULL wird in PostgreSQL NULL konvertiert.

Wenn die Tabelle Tabellenname vor PHP 5.6.0 boolesche Felder enthält, verwenden Sie keine Konstante WAHR als Wert des Arrays table_name für diese Felder. Es wird in die Zeichenfolge „TRUE“ konvertiert, was ein ungültiger Wert für boolesche Felder in PostgreSQL ist. Verwenden Sie die Werte „t“, „true“, „1“, „y“, „yes“.

Liste der Parameter

Verbindungsressource für die PostgreSQL-Datenbank.

Tabellenname

Name der Datenbanktabelle.

Assoc_array

Zu konvertierende Daten.

Optionen

Eine der Konstanten PGSQL_CONV_IGNORE_DEFAULT, PGSQL_CONV_FORCE_NULL oder PGSQL_CONV_IGNORE_NOT_NULL oder eine Kombination davon.

Rückgabewerte

Array( Array), die die konvertierten Daten enthält, oder FALSCH im Fehlerfall.

Beispiele

Beispiel Nr. 1 Anwendungsbeispiel pg_convert()

$dbconn = pg_connect ( "dbname=foo" );

$tmp = array(
„Autor“ => „Joe Thackery“,
"Jahr" => 2005,
„title“ => „My Life, von Joe Thackery“
);

$vals = pg_convert ($dbconn, "authors", $tmp);
?>