当我运行以下查询时
select first 1 IMG from img_lib;
我得到的输出为 IMG 4cc:0 BLOB显示设置为子类型1。此BLOB:子类型= 0
有人可以帮助我使用PHP代码将blob内容显示为图像吗? 我认为MySQL不能在这里工作,有人可以帮助我进行火鸟查询吗?
答案 0 :(得分:2)
PHP提供了两个可用于Firebird / Interbase数据库的库:Ibase和PDO。
Ibase提供了两种检索Blob的方法。 一种是通过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。它将在获取结果时立即返回blob内容。
第二个库,带有Firebird驱动程序的PDO,自动获取blob。
下一步,在将BLOB内容加载到内存中之后,需要将其输出为图像。 这是一个示例代码,假定您具有jpeg图像格式:
<?php
// fetch here blob content described in previous methods
header('Content-Type: image/jpeg');
echo $blob_content;
您的脚本的后期图像源,例如<img src="blob_image.php" />