从Oracle数据库中检索hugeblob图像给出了recorse id,PHP,Codeigniter

时间:2016-05-10 07:41:44

标签: php oracle codeigniter

我正在使用Codeigniter从oracle数据库中检索HUGEBLOB图像。当我获得图像时,它会给出资源ID#45。

我的问题是,

为什么要给出资源ID? 如何将资产转换为字符串并显示此图像?

我的代码是,

EditText

请帮助我,我被困在这里。

1 个答案:

答案 0 :(得分:0)

请参阅PDO documentation on handling LOBS

  

PDO允许您使用PDO::PARAM_LOBPDOStatement::bindParam()来电中的PDOStatement::bindColumn()类型代码来处理此大数据类型。 PDO::PARAM_LOB告诉PDO将数据映射为流,以便您可以使用PHP Streams API对其进行操作。

Example 1显示'显示数据库中的图像':

$db = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2');
$stmt = $db->prepare("select contenttype, imagedata from images where id=?");
$stmt->execute(array($_GET['id']));
$stmt->bindColumn(1, $type, PDO::PARAM_STR, 256);
$stmt->bindColumn(2, $lob, PDO::PARAM_LOB);
$stmt->fetch(PDO::FETCH_BOUND);

header("Content-Type: $type");
fpassthru($lob);

如果您的代码中使用的对象是该框架的一部分,您可能需要与CodeIgniter文档交叉引用。

如果返回的资源属于stream类型(如示例代码中所示),那么可能可以像这样使用stream_get_contents

$this->output->set_header('content-type: image/jpeg');
echo stream_get_contents($row['PIC']);