繁体   English   中英

PHP如何将BLOB数据放入数组

[英]PHP how to put BLOB data into an array

我正在开发一个php脚本,该脚本从MYSQL数据库读取数据。 使用phpmyadmin,我可以看到所有数据都在数据库中并且格式正确。

该数据库由文本列和Blob列组成。

我现在来回读此数据。 我使用了以下代码。

$query = @"SELECT TEXT1, TEXT2, TEXT3, IMAGE FROM EXAMPLETABLE";

做所有的SQL调用

现在,如果我执行以下命令,则它将文本填充为数组,但图像/斑点位为空

while($row = mysql_fetch_array($result))
{
    $posts[] = array($row['TEXT1'], $row['TEXT2'], $row['TEXT3'], $row['IMAGE']);
}

通过Safari的结果

[["Gbv","TR","FG",null]]

如果我执行以下操作,我将获得图像数据。

while($row = mysql_fetch_array($result))
{
    ECHO $row['IMAGE'];
}

编辑因此,再看一下代码(今天已经工作很辛苦了),我注意到我通过echo json_encode($ posts);发送了数组。

json_encode弄乱了Blob数据。

谢谢

从Blob创建一个图像,捕获输出缓冲内容,转换为jpeg,从缓冲区中获取内容,结束输出缓冲,然后将图像推入数组。

$image = imagecreatefromstring($row['IMAGE']); 
ob_start(); //start capture of the output buffer
imagejpeg($image, null, 80);
$data = ob_get_contents();
ob_end_clean();
$posts[] = array('text'1 => $row['TEXT1'], 'text2' => $row['TEXT2'], 'text3' => $row['TEXT3'], 'image' => $data);

然后执行以下操作:

foreach($posts as $post):
    echo '<img src="data:image/jpg;base64,' .  base64_encode($post['image'])  . '" />';
endforeach;

那应该为您工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM