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

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

我有关于PHPvariables$result在这里。

我的代码到目前为止:(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> 

我怎样才能从PHP的variables$结果到HTML中,所以我可以显示在<img>标签?

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

 <body> <img src="getImage.php?id=1" width="175" height="200" /> </body> 

那么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']; ?> 

从技术上讲,您也可以使用数据URI将图像数据放在img标签中。

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

在某些特殊情况下,这甚至可能是有用的,虽然在大多数情况下,您最好通过像daiscog这样的单独脚本来提供图像。

您需要检索并将信息分解为所需的信息。

 while($row = mysql_fetch_array($result)) { echo "img src='",$row['filename'],"' width='175' height='200' />"; } 

首先,您需要从查询的结果集中获取结果行。 为此你可以使用mysql_fetch_row 。 现在您已经获取了行,您可以访问检索到的值并将其回显到src中。

例如:

 $sql = "SELECT dvdimage FROM dvd WHERE id=1"; $result = mysql_query($sql); $row = mysql_fetch_row($result); ?> <img src="<?=$row[0]?>" width="175" height="200" /> <? 

添加$row = mysql_fetch_object($result); 在你的mysql_query()之后;

你的html <img src="<?php echo $row->dvdimage; ?>" width="175" height="200" />