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.
(PECL paradox >= 1.3.0)
px_set_blob_file — Establecer el archivo desde donde los blobs se van a leer
$pxdoc
, string $filename
) : boolEstablece 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.
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.
Devuelve TRUE
en caso de éxito o FALSE
en caso de error.
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.
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);
?>