PHP Velho Oeste 2024

px_set_blob_file

(PECL paradox >= 1.3.0)

px_set_blob_fileDéfinit le fichier depuis lequel les blobs seront lus

Description

px_set_blob_file ( resource $pxdoc , string $filename ) : bool

Définit le nom du fichier depuis lequel les blobs seront lus. Sans l'appel à cette fonction, px_get_record() ou px_retrieve_record() retournera uniquement les données des champs blob si les données sont des parties des enregistrements et ne sont pas stockées dans un fichier blob. Les données blob sont stockées dans un enregistrement si elles sont suffisamment petites pour correspondre à la taille du champ blob.

L'appel aux fonctions px_put_record(), px_insert_record() ou px_update_record() sans appeler la fonction px_set_blob_file() fera que les champs Blobs seront tronqués à moins que les données rentrent juste dans le fichier de base de données.

Deux appels à cette fonction fermera le premier fichier blob et ouvrira le nouveau.

Liste de paramètres

pxdoc

Identifiant de ressource de base de données Paradox tel que retourné par la fonction px_new().

filename

Le nom du fichier. Son extension doit être .MB.

Valeurs de retour

Cette fonction retourne TRUE en cas de succès ou FALSE si une erreur survient.

add a note add a note

User Contributed Notes 2 notes

up
0
Anonymous
12 years ago
Note: Due to the (old) bug https://bugs.php.net/bug.php?id=57141 the database file passed to px_open_fp needs to be opened with write permissions (e.g. using the r+ flag). It will crash with a fatal error if opened in read only mode.
up
0
simon at centurioncomputers dot com dot au
13 years ago
I could not get the OO interface to set_blob_file() to work....

<?php
$fp
= fopen("/home/httpd/vhosts/newjcs/SALLY.DB", "r");
$pxdoc = new paradox_db();
$pxdoc->set_blob_file('/home/httpd/vhosts/newjcs/SALLY.MB');
?>
.............................
Fatal error: paradox_db::set_blob_file(): Paradox database has not been opened or created when setting the blob file
.............................

but worked nicely when called procedurally, so quick example to grab the images from a paradox DB , the field names you will have to change to suit.

<?php
$pxdoc
= px_new();
$fp = fopen("/blah/SALLY.DB", "r");
px_open_fp($pxdoc, $fp);
px_set_blob_file($pxdoc,'/blah/SALLY.MB');
$numrecords=px_numrecords($pxdoc);
for(
$x=1;$x<=$numrecords;++$x){
   
$yaks=px_get_record($pxdoc,$x);
    if(
$yaks['Picture']){
       
file_put_contents("/blah/ims/{$yaks['Val No']}.bmp",$yaks['Picture']);
    }
}
px_close($pxdoc);
px_delete($pxdoc);
fclose($fp);
?>
To Top