2014-10-10 41 views
0

我正在開發一個php腳本,它從MYSQL數據庫讀取數據。使用phpmyadmin我可以看到所有的數據都在數據庫中,格式正確。PHP如何將BLOB數據放入數組

數據庫由文本列和blob列組成。

我現在來讀回這些數據。我已經使用了下面的代碼。

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

是否所有的SQL調用

現在,如果我做以下命令,然後它填補與文本,但在圖像/ BLOB位通過

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

結果空數組Safari

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

如果我做了以下我得到th e圖像數據。

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

編輯 所以之後再看看代碼(在努力遠遠今天硬)我注意到,我的 回聲json_encode($個)的陣列發送;

json_encode搞亂了blob數據。

由於

+7

在你的問題中的每一個代碼示例都有一個錯誤。 – 2014-10-10 20:41:29

回答

1

創建從團塊,捕獲輸出緩衝內容的圖像,轉換爲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; 

這應該爲你工作。