我使用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>
标记中显示?
答案 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']) ).'"/>';
希望它将对某人有所帮助
谢谢。