如何从MySQL数据库中检索图像并显示在html标记中

exx*_*ent 31 html php mysql

我使用phpmyadmin创建了一个带有表的MySQL数据库.我用BLOB列创建了这个表来保存jpeg文件.

$result在这里有关于php变量的问题.

到目前为止我的代码:(catalog.php):

<body>
<?php
  $link = mysql_connect("localhost", "root", "");
  mysql_select_db("dvddb");
  $sql = "SELECT dvdimage FROM dvd WHERE id=1";
  $result = mysql_query("$sql");
  mysql_close($link);

?>
<img src="" width="175" height="200" />
</body>
Run Code Online (Sandbox Code Playgroud)

如何将PHP中的变量$ result导入HTML中,以便在<img>标记中显示?

meg*_*lop 42

你不能.您需要创建另一个PHP脚本来返回图像数据,例如getImage.php.将catalog.php更改为:

<body>
<img src="getImage.php?id=1" width="175" height="200" />
</body>
Run Code Online (Sandbox Code Playgroud)

然后getImage.php是

<?php

  $id = $_GET['id'];
  // do some validation here to ensure id is safe

  $link = mysql_connect("localhost", "root", "");
  mysql_select_db("dvddb");
  $sql = "SELECT dvdimage FROM dvd WHERE id=$id";
  $result = mysql_query("$sql");
  $row = mysql_fetch_assoc($result);
  mysql_close($link);

  header("Content-type: image/jpeg");
  echo $row['dvdimage'];
?>
Run Code Online (Sandbox Code Playgroud)

  • 要从DB获取不同的图像,只需更改`id` get参数:`<img rel="nofollow noreferrer" src ="getImage.php?id = 1"width ="175"height ="200"/> <img rel="nofollow noreferrer" src ="getImage .php?id = 2"width ="175"height ="200"/> ...` (2认同)

Ilm*_*nen 28

从技术上讲,您也可以使用数据URI将图像数据放入img标记中.

<img src="data:image/jpeg;base64,<?php echo base64_encode( $image_data ); ?>" />
Run Code Online (Sandbox Code Playgroud)

在某些特殊情况下,这甚至可能有用,尽管在大多数情况下,您最好通过像daiscog建议的单独脚本来提供图像.