its not very clear if pg_lo_import needs to have pg_lo_open called first. Because pg_lo_import handles the process of writign to the file, it seems logical that pg_lo_open does not need to be called. However due to the ugly nature of how postgres handles oid objects, it would be nice to have this documented.
pg_lo_import
(PHP 4 >= 4.2.0, PHP 5)
pg_lo_import — Importe un objet de grande taille depuis un fichier
Description
pg_lo_import() crée un nouvel objet de grande taille dans la base de données en utilisant un fichier dans le système de fichier en tant que données sources.
Pour utiliser un objet de grande taille (lo), il est nécessaire de le faire dans une transaction.
Note: Lorsque le safe-mode est activé, PHP vérifie si le fichier/dossier que vous allez utiliser a le même UID que le script qui est actuellement exécuté.
Note: Auparavant, cette fonction s'appelait pg_loimport().
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().
- pathname
-
Le chemin d'accès complet ainsi que le fichier dans lequel il sera lu l'objet de grande taille sur le système du client.
- object_id
-
Si le paramètre object_id est fourni, la fonction essayera de créer un objet large avec cette identifiant, sinon, un identifiant d'objet disponible sera assigné par le serveur. Ce paramètre a été ajouté en PHP 5.3 et cette fonctionnalité est apparue avec PostgreSQL 8.1.
Valeurs de retour
Le OID du nouvel objet de grande taille créé ou FALSE en cas d'échec.
Historique
| Version | Description |
|---|---|
| 5.3.0 | Le paramètre optionnel object_id a été ajouté. |
| 4.2.0 |
La syntaxe de cette fonction a changé. Avant PHP 4.2.0, la syntaxe était :
int pg_lo_import
( string $pathname
[, resource $connection
] )
|
Exemples
Exemple #1 Exemple avec pg_lo_import()
<?php
$database = pg_connect("dbname=jacarta");
pg_query($database, "begin");
$oid = pg_lo_import($database, '/tmp/lob.dat');
pg_query($database, "commit");
?>
Voir aussi
- pg_lo_export() - Exporte un objet de grande taille vers un fichier
- pg_lo_open() - Ouvre un objet de grande taille PostgreSQL
pg_lo_import
02-Aug-2002 12:54
19-Jun-2002 01:04
Due to a bug, OLD API does not available with PHP 4.2.0 and 4.2.1.
PHP 4.2.2 will support OLD API again and will be kept long enough.
New API will be available PHP 4.2.0 to later versions.
19-Jun-2002 01:00
Due to a bug, PHP 4.2.0 and 4.2.1 does not support pg_lo_import() old API. It's fixed in PHP 4.2.2.
BTW, new API will be always available from PHP 4.2.0 to later versions. Older API will be kept long enough, also.
15-May-2002 06:08
it works for me (php-4.2.1)
not like this
int pg_lo_import ( string pathname [, resource connection])
but
int pg_lo_import ( resource connection, string pathname )
don't know the reason
