当我运行以下查询时
select first 1 IMG from img_lib;我得到的输出为IMG 4cc:0 BLOB display set to subtype 1。
谁能帮助我的PHP代码,以显示的blob内容作为一个图像?我不认为MySQL会在这里工作,有人能帮我做火鸟查询吗?
发布于 2019-01-09 23:33:09
PHP提供了两个库来处理Firebird/Interbase数据库:Ibase和PDO。
Ibase提供了两种检索blobs的方法。一种是通过ibase_blob_get函数使用延迟加载:
if (is_null($field)) return null;
$info = ibase_blob_info($field);
$handle = ibase_blob_open($field);
return ibase_blob_get($handle, $info[0]);当您只需要获取一些blob而不是所有blob时,这种方法是很好的,因为这是一个开销很大的操作。
另一种方法是在ibase_fetch_assoc函数中使用IBASE_TEXT获取标志参数或获取object / row。它将在fetch结果中直接返回blob内容。
第二个库是带有Firebird驱动程序的PDO,它自动获取blobs。
下一步,将BLOB内容加载到内存中后,需要将其作为图像输出。下面是一个示例代码,假设您使用的是jpeg图像格式:
<?php
// fetch here blob content described in previous methods
header('Content-Type: image/jpeg');
echo $blob_content;稍后将图像源指向您的脚本,如<img src="blob_image.php" />
https://stackoverflow.com/questions/54071681
复制相似问题