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 — Sets the file where blobs are read from
$pxdoc
, string $filename
)Sets the name of the file where blobs are going to be read from or written into. Without calling this function, px_get_record() or px_retrieve_record() will only return data in blob fields if the data is part of the record and not stored in the blob file. Blob data is stored in the record if it is small enough to fit in the size of the blob field.
Calling px_put_record(), px_insert_record(), or px_update_record() without calling px_set_blob_file() will result in truncated blob fields unless the data fits into the database file.
Calling this function twice will close the first blob file and open the new one.
pxdoc
Resource identifier of the paradox database as returned by px_new().
filename
The name of the file. Its extension should be .MB.
成功时返回 TRUE
, 或者在失败时返回 FALSE
。
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);
?>