我正在尝试使用mysql数据库和php在表格中显示图像。我的表中的其他所有信息都显示正常,但图像除外,我收到了。
����JFIF���(%!1!1)...... 383,7 * - 。7 +%& ----- 5 --- + ------- !-5 ----- + ------------------- 5 - / ---"乙1A&#34 ; QA2
在我的表格中,这种情况持续了一段时间。在我的数据库中,我将图像设置为blob而不是null。我正在使用此代码来显示它。
<?php
include 'connect.php';
$results = mysqli_query($con, 'select * from products');
?>
<table cellpadding="3" cellspacing ="3" border="0">
<tr>
<th>Image</th>
<th>Name</th>
<th>Description</th>
<th>Price</th>
<th>Buy Product</th>
</tr>
<?php
while($products= mysqli_fetch_object($results)){
if($products->id<=10){?>
<tr>
<td><?php echo $products->images;?></td>
<td><?php echo $products->name;?></td>
<td><?php echo $products->description;?></td>
<td><?php echo $products->price;?></td>
<td><a href="cart.php?id=<?php echo $products->id; ?
>">Add to Cart</a></td>
</tr>
<?php }} ?>
</table>
任何帮助将不胜感激。谢谢。
答案 0 :(得分:1)
首先我要说的是,将图像数据存储在数据库中可能是一个坏主意,尤其是当您拥有大量图像时。稍微好一点的方法可能是只存储文件的路径并在html代码中链接到它。
无论如何,你有问题并且有解决方案。目前您只是显示BLOB
内容,这是图像的原始二进制数据。要显示图片,您需要一个包含正确来源的<img>
标记。
这样的事情:
<img src="data:image/jpeg;base64,<?= base64_encode($blob) ?>"/>;
在您的确切情况下,它看起来更像是这样:
...
<td>
<!-- JPG image -->
<img src="data:image/jpeg;base64,<?= base64_encode($products->images) ?>"/>;
</td>
...
答案 1 :(得分:0)
将图像存储在数据库中通常被认为是一个坏主意,您应该尝试存储图像路径。
如果你真的需要这样做,你需要使用正确的标签来显示它们:
# If you readd this line, you must change the SO value
LDFLAGS += -brtl
例如,请重新考虑。