PHP 5.4.36 Released

pg_put_line

(PHP 4 >= 4.0.3, PHP 5)

pg_put_line Envoie une chaîne au serveur PostgreSQL

Description

bool pg_put_line ([ resource $connection ], string $data )

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

La ressource de connexion de la base de données PostgreSQL. Lorsque connection n'est pas présent, la connexion par défaut est utilisée. La connexion par défaut est la dernière connexion faite par pg_connect() ou pg_pconnect().

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.

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 add a note

User Contributed Notes 1 note

up
1
kurt at nospam dot milliganshome dot net
9 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.
To Top