PHP Velho Oeste 2024

px_set_blob_file

(PECL paradox >= 1.3.0)

px_set_blob_fileEstablecer el archivo desde donde los blobs se van a leer

Descripción

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

Establece el nombre del archivo desde donde los blobs se van a leer o escribir. Sin llamar a esta función, px_get_record() o px_retrieve_record() sólo devolverá datos en campos blob si los datos son parte del registro y no se almacenan en el archivo blob. Los datos blob se almacenan en el registro si es lo suficientemente pequeño para adaptarse al tamaño del campo blob.

Las llamadas a la función px_put_record(), px_insert_record(), o px_update_record() sin llamar a la función px_set_blob_file() dará como resultados campos blob truncados a menos que los datos encajen en el archivo de base de datos.

Llamando a esta función dos veces se cerrará el primer archivo blob y abrirá el nuevo.

Parámetros

pxdoc

Identificador de recursos de la base de datos paradox devuelto por la función px_new().

filename

El nombre del archivo. Su extensión debe ser .MB.

Valores devueltos

Devuelve TRUE en caso de éxito o FALSE en caso de error.

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