【问题标题】:PHP image blob displays symbols instead of picturePHP图像blob显示符号而不是图片
【发布时间】: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">
        &#9733; &#9733; &#9733; &#9733; &#9733;
    </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!我这边有这样的疏忽,谢谢!

标签: php sql database uwamp


【解决方案1】:

您似乎在 class= 之前缺少双引号 (") – nahanil

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-07-06
    • 1970-01-01
    • 2018-10-20
    • 2017-07-28
    • 1970-01-01
    • 2012-04-29
    • 2014-02-27
    • 1970-01-01
    相关资源
    最近更新 更多