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

时间:2011-10-17 11:20:40

标签: php mysql html

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

我在这里遇到有关php变量$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中的变量$ result导入HTML中,以便在<img>标记中显示?

6 个答案:

答案 0 :(得分:40)

你做不到。您需要创建另一个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'];
?>

答案 1 :(得分:25)

从技术上讲,您可以使用data URIs将图像数据放入img标记中。

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

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

答案 2 :(得分:3)

您需要检索并分析您需要的信息。

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

答案 3 :(得分:1)

首先,您需要从查询的结果集中获取结果行。为此,您可以使用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" />
<?

答案 4 :(得分:1)

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

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

答案 5 :(得分:0)

我在插入数据库之前已经添加了斜杠,所以在获取时我再次删除了斜杠stripslashes(),它对我有用。我正在分享对我有用的代码。

我如何插入mysql db(blob类型)

$db = mysqli_connect("localhost","root","","dName"); 
$image = addslashes(file_get_contents($_FILES['images']['tmp_name']));
$query = "INSERT INTO student_img (id,image) VALUES('','$image')";  
$query = mysqli_query($db, $query);

现在可以访问图像

$sqlQuery = "SELECT * FROM student_img WHERE id = $stid";
$rs = $db->query($sqlQuery);
$result=mysqli_fetch_array($rs);
echo '<img src="data:image/jpeg;base64,'.base64_encode( stripslashes($result['image']) ).'"/>';

希望它将对某人有所帮助

谢谢。