【发布时间】:2019-05-12 11:14:10
【问题描述】:
我正在尝试在我的网站上显示带有图像的产品卡片,而不是图像,而是带有如下符号的文本。
这是索引:
$q = "SELECT * FROM items" ;
$r = mysqli_query( $link, $q ) ;
if ( mysqli_num_rows( $r ) > 0 )
{
# Display body section.
echo '';
while ( $row = mysqli_fetch_array( $r, MYSQLI_ASSOC ))
{
echo '
<div class="product_wrapper">
<a href="#"><img src='. $row['item_image'].' class="product_image"></a>
<button class="addtocart_button"><a href="added.php?id='.$row['item_id'].'">Add to cart</button>
<p class="product_details"><a href="item.html">'. $row['item_name'] . '
<p class="product_details">' . $row['item_price'] . '
<div class="star_container">
★ ★ ★ ★ ★
</div>
</div>
';
}
这是网站上显示的一小部分内容。图像在 PHPmyAdmin 中存储为“BLOB”数据类型。将其插入数据库后,我注意到以下消息:“此查询已禁用 Linting,因为它超过了最大长度”。
��� )���������_&?���YNO�5�ᶌ�#>٫'�L���i�Mϗ'���3Z���J��S�����ZKp{\C�0A�����c����Wn�/֨��?�U!��
我已经像这样编辑了图像行:
<a href="#"><img src="data:image/jpeg;base64,'. base64_encode($row['item_image']).' class="product_image"></a>
这消除了符号,但是图像仍然不显示(小错误图像)。
【问题讨论】:
-
除非经过 base64 编码,否则无法将图像显示为文本。您如何将图像实际存储在数据库中?您是如何尝试在 VS 代码中查看得到此文本的?
-
使用 blob 需要一些优化才能得到预期的结果。您应该在不同的表中分离 blob 并在查询中使用 join 并在 google 上探索教程以使查询更好。
-
我已经通过 phpmyadmin 插入了图片,只需选择文件并上传即可。我正在使用 UwAmp 查看页面。
-
您在 `class=` 之前好像少了一个双引号 (")
-
你已经为我修好了 nahanil!我这边有这样的疏忽,谢谢!