px_set_blob_file
(PECL paradox >= 1.3.0)
px_set_blob_file — Sets the file where blobs are read from
Description
$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.
Parameters
-
pxdoc
-
Resource identifier of the paradox database as returned by px_new().
-
filename
-
The name of the file. Its extension should be .MB.
Return Values
Returns TRUE
on success or FALSE
on failure.
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Расширения для работы с базами данных
- Расширения для работы с базами данных отдельных производителей
- Paradox File Access
- px_close
- px_create_fp
- px_date2string
- px_delete_record
- px_delete
- px_get_field
- px_get_info
- px_get_parameter
- px_get_record
- px_get_schema
- px_get_value
- px_insert_record
- px_new
- px_numfields
- px_numrecords
- px_open_fp
- px_put_record
- px_retrieve_record
- px_set_blob_file
- px_set_parameter
- px_set_tablename
- px_set_targetencoding
- px_set_value
- px_timestamp2string
- px_update_record
Коментарии
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);
?>
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.