如何从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" />