2017-03-01 112 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