pg_insert

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

pg_insertÜberträgt Werte aus einem Array in eine Tabelle

Beschreibung

pg_insert(
    PgSql\Connection$connection,
    string$table_name,
    array$values,
    int$flags = PGSQL_DML_EXEC
): PgSql\Result|string|bool

pg_insert() fügt die Werte des values in die Tabelle table_name ein.

Falls flags angegeben wurde, wird pg_convert() mit den angegebenen Flags auf das Array values angewendet.

Standardmäßig übergibt pg_insert() Rohwerte. Die Werte müssen entweder maskiert werden oder es muss die Option PGSQL_DML_ESCAPE angegeben werden. PGSQL_DML_ESCAPE maskiert Parameter und Bezeichner und setzt sie in Anführungszeichen. Daher muss bei Tabellen- und Spaltennamen zwischen Groß- und Kleinschreibung unterschieden werden.

Es ist zu beachten, dass weder die Maskierung noch eine vorbereitete Abfrage LIKE-Abfragen, JSON, Array, Regex usw. schützen können. Diese Parameter sollten im Kontext behandelt werden, d. h. Werte maskieren und validieren.

Parameter-Liste

connection

Eine PgSql\Connection-Instanz.

table_name

Der Name der Tabelle, in die die Zeilen eingefügt werden sollen. table_name muss mindestens soviele Spalten haben, wie das values Elemente.

values

Ein array, dessen Indizes die Feldnamen der Tabelle table_name sind und dessen Werte die Werte sind, die in die entprechenden Spalten eingefügt werden sollen.

flags

Jede Kombination aus PGSQL_CONV_OPTS, PGSQL_DML_NO_CONV, PGSQL_DML_ESCAPE, PGSQL_DML_EXEC, PGSQL_DML_ASYNC und PGSQL_DML_STRING. Falls PGSQL_DML_STRING bei den flags angegeben wurde, wird der Abfrage-String zurückgegeben. Werden PGSQL_DML_NO_CONV oder PGSQL_DML_ESCAPE angegeben, wird pg_convert() intern nicht aufgerufen.

Rückgabewerte

Gibt bei Erfolg true zurück. Bei einem Fehler wird false zurückgegeben.. Oder gibt bei Erfolg einen String zurück, wenn PGSQL_DML_STRING über flags übergeben wird.

Fehler/Exceptions

Wenn die angegebene Tabelle ungültig ist, wird ein ValueError geworfen.

Wenn der Wert oder der Typ eines Feldes nicht mit einem PostgreSQL-Typ übereinstimmt, wird ein ValueError oder TypeError geworfen.

Changelog

VersionBeschreibung
8.3.0 Wenn die angegebene Tabelle ungültig ist, wird nun ein ValueError geworfen; zuvor wurde ein E_WARNING ausgegeben.
8.3.0 Wenn der Wert oder Typ eines Feldes nicht mit einem PostgreSQL-Typ übereinstimmt, wird nun ein ValueError oder TypeError geworfen; zuvor wurde ein E_WARNING ausgegeben.
8.1.0 Gibt nun eine PgSql\Result-Instanz zurück; vorher wurde eine Ressource zurückgegeben.
8.1.0 Der Parameter connection erwartet nun eine PgSql\Connection-Instanz; vorher wurde eine Ressource erwartet.

Beispiele

Beispiel #1 pg_insert()-Beispiel

<?php
$dbconn
= pg_connect('dbname=foo');
// Das ist einigermaßen sicher, da alle Werte maskiert werden.

Siehe auch

  • pg_convert() - Konvertiert die Werte eines assoziativen Arrays in die für SQL-Anweisungen passende Form
To Top