PHP 8.4.0 RC4 available for testing

pg_put_line

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

pg_put_line Envoie une chaîne au serveur PostgreSQL

Description

pg_put_line(PgSql\Connection $connection = ?, string $data): bool

pg_put_line() envoie une chaîne (terminée par null) au serveur PostgreSQL. Ceci est nécessaire en conjonction avec une commande COPY FROM PostgreSQL.

COPY est un chargement très rapide des données supporté par PostgreSQL. Les données sont passées sans être analysées et dans une simple transaction.

Une alternative plutôt que d'utiliser la commande brute pg_put_line() est d'utiliser pg_copy_from(). C'est une interface bien plus simple.

Note:

Notez que l'application doit explicitement ajouter les deux caractères "\." à la fin de la chaîne pour indiquer au serveur qu'elle a finit d'envoyer des données, avant d'appeler pg_end_copy().

Avertissement

L'utilisation de pg_put_line() cause sur la plupart des objets de grande taille à échouer, incluant pg_lo_read() et pg_lo_tell(). Vous pouvez utiliser pg_copy_from() et pg_copy_to() à la place.

Liste de paramètres

connection

Une instance PgSql\Connection. Quand connection est pas spécifié, la connexion par défaut est utilisé. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect()

Avertissement

À partir de PHP 8.1.0, utiliser la connexion par défaut est obsolète.

data

Une ligne de texte à envoyer directement au serveur PostgreSQL. Un caractère d'arrêt null est automatiquement ajouté.

Valeurs de retour

Cette fonction retourne true en cas de succès ou false si une erreur survient.

Historique

Version Description
8.1.0 Le paramètre connection attend désormais une instance de PgSql\Connection ; auparavant, une ressource était attendu.

Exemples

Exemple #1 Exemple avec pg_put_line()

<?php
$conn
= pg_pconnect("dbname=foo");
pg_query($conn, "create table bar (a int4, b char(16), d float8)");
pg_query($conn, "copy bar from stdin");
pg_put_line($conn, "3\tBonjour le monde\t4.5\n");
pg_put_line($conn, "4\tAurevoir le monde\t7.11\n");
pg_put_line($conn, "\\.\n");
pg_end_copy($conn);
?>

Voir aussi

add a note

User Contributed Notes 2 notes

up
2
kurt at nospam dot milliganshome dot net
19 years ago
This is the function you need if you are running into the infamous "must be superuser to COPY to or from a file" error from postgres.
up
0
smcbride at msn dot com
4 years ago
When using this function, don't get bit by using 'literal\tanotherliteral\n' issue by using single quotes vs. double quotes. "literal\tanotherliteral\n" is not the same. Many of the functions are impacted on how double quotes treats escape characters different than single quotes. I forget it all the time.
To Top