Php 如何从MySQL数据库检索图像并显示在html标记中
我使用phpmyadmin创建了一个带有表的MySQL数据库。我用一个BLOB列创建了这个表来保存一个jpeg文件 我对php变量Php 如何从MySQL数据库检索图像并显示在html标记中,php,mysql,html,Php,Mysql,Html,我使用phpmyadmin创建了一个带有表的MySQL数据库。我用一个BLOB列创建了这个表来保存一个jpeg文件 我对php变量$result有问题 到目前为止,我的代码是:(catalog.php): 如何将变量$result从PHP获取到HTML中,以便在标记中显示它?您需要检索信息并将其分离到所需的内容中 while($row = mysql_fetch_array($result)) { echo "img src='",$row['filename'],"' width='17
$result
有问题
到目前为止,我的代码是:(catalog.php):
如何将变量$result从PHP获取到HTML中,以便在
标记中显示它?您需要检索信息并将其分离到所需的内容中
while($row = mysql_fetch_array($result)) {
echo "img src='",$row['filename'],"' width='175' height='200' />";
}
你不能。您需要创建另一个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'];
?>
添加
$row=mysql\u fetch\u对象($result)代码>在mysql_查询()之后
您的htmldvdimage;?>“width=“175”height=“200”/>
从技术上讲,您也可以使用将图像数据放入img标签中
“/>
在某些特殊情况下,这甚至可能很有用,但在大多数情况下,最好通过单独的脚本来提供图像。我在插入数据库之前添加了斜杠,因此在获取时,我再次删除了斜杠stripslashes()
,这对我很有用。我正在分享适用于我的代码
如何插入mysql数据库(blob类型)
现在进入图像
$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']) ).'"/>';
$sqlQuery=“从学生\ img中选择*,其中id=$stid”;
$rs=$db->query($sqlQuery);
$result=mysqli\u fetch\u数组($rs);
回声';
希望它能帮助别人
谢谢。什么问题?你需要说明你的代码现在做错了什么。你可以从获取这些结果开始。我不清楚显示BLOB所涉及的语法image@DamienPirsy我怎样才能得到这些结果?只有我的2美分,与你的问题无关,但我认为最好将图像存储在文件系统中,然后只引用数据库中的路径。您将获得更好的性能,并在存储图像的位置上具有更大的灵活性。您不能将原始图像数据放入img src中。OP明确指出数据库存储的是图像数据,而不是图像文件的路径。我想知道是否有人会建议使用数据URI。效率不是很高,IMO(没有浏览器/代理缓存),但确实值得一提,我的数据库中有近50个图像。您编写的是为了只获取一个图像。如何在页面中显示整个图像要从数据库中获取不同的图像,只需更改id
get参数:。
这个答案是不正确的,因为有可能,请查看Ilmari的答案。@DheerajMPai这是整个脚本。虽然现在你会使用MySQLi而不是mysql_*函数(这个答案已经有7年历史了)。它可能已经有7年历史了,但对初学者来说仍然很有帮助。无论如何,我换了python。所以没有问题了@巨变
$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']) ).'"/>';