2017-03-01 110 views
0

我有一個存儲文本和圖像(blob)信息的mysql數據庫。我想使用PHP腳本在頁面中顯示所有這些信息,我的問題是並非每個插入的數據都包含圖像,所以...當PHP腳本運行時,存儲在數據庫中的圖像會正確顯示,但是當存在沒有存儲圖像,它會在瀏覽器上顯示一個破碎的圖像符號...我如何解決這個問題,以便在圖像存在於數據庫中時顯示圖像,並在沒有圖像符號時避免破碎的圖像符號?破碎的圖像符號(PHP腳本)

我的代碼如下:

echo '<body bgcolor="#ffffff">'; 
echo "<p style='color:white;background-color:blue;font-family:arial black;font-size:20;text-align:center'>". $row['title'] . "</p>"; 
echo '<center><img src="data:image/jpeg;base64,'.base64_encode($row['image']).'" width="300" eight="300"/></center>'; 
echo "<br>"; 
echo "<br><br>"; 
echo '<font size="3"><b><i>POR:' . $row['author'] . '</font></i></b><br>'; 
echo '<font size="3"><b><i>DATA: ' . $row['date'] . '</font></i></b><br><br>'; 
echo '<font size="3">' . $row['text'] . '</font><br>'; 
echo "<hr><hr>"; 

回答

0

請檢查是否有任何圖像行中有一個簡單的if。

echo '<body bgcolor="#ffffff">'; 
echo "<p style='color:white;background-color:blue;font-family:arial black;font-size:20;text-align:center'>". $row['title'] . "</p>"; 
if($row['image']) { 
    echo '<center><img src="data:image/jpeg;base64,'.base64_encode($row['image']).'" width="300" eight="300"/></center>'; 
} 
echo "<br>"; 
echo "<br><br>"; 
echo '<font size="3"><b><i>POR:' . $row['author'] . '</font></i></b><br>'; 
echo '<font size="3"><b><i>DATA: ' . $row['date'] . '</font></i></b><br><br>'; 
echo '<font size="3">' . $row['text'] . '</font><br>'; 
echo "<hr><hr>"; 
+0

這個工作指定的圖像將只顯示迴音!謝謝! – Vladimir

0

試試這個:

if($row['image'] != '') 
{ 
    echo '<center><img src="data:image/jpeg;base64,'.base64_encode($row['image']).'" width="300" eight="300"/></center>'; 
} 
else 
{ 
    // show some text or a default "No image found" 
} 

說明:只有顯示圖像時,一些圖像是存在的數據庫。

0

所有你需要做的就是添加一個if statement,像下面的東西可以工作。

if(isset($row['image'])) 
{ 
    echo '<center><img src="data:image/jpeg;base64,'.base64_encode($row['image']).'" width="300" eight="300"/></center>'; 
} 

這是否有由$row['image']變量

+0

這將無法正常工作的結果填充數組完全和圖像索引存在,即使沒有保存圖像。 – JensV