【发布时间】:2019-03-24 11:14:52
【问题描述】:
我使用 phpmyadmin 创建了一个带有表的 MySQL 数据库。我用一个 BLOB 列创建了这个表来保存一个 .jpg 文件。
目前我正在尝试在 HTML 标记中显示图像 (BLOB),但没有成功。运行代码时,我只得到损坏的图像图标。
注意:我知道不建议这样做,但目前我也这样做了。
我已经尝试在 stackoverflow.com、quora.com 和 codeofaninja.com 中查找各种问题,并尝试实施似乎对其他人有效但对我无效的各种解决方案。
我在哪里显示信息(test.php):
<html>
<img src="getImage.php?id=10" width="175" height="200" />
</html>
我试图用来显示图像的代码 (getImage.php)
<?php
$link = mysqli_connect("localhost", "root", "");
mysqli_select_db("unirentas");
$id = $_GET['id'];
// do some validation here to ensure id is safe
$sql = "SELECT imagen FROM propiedades WHERE ID_renta=$id";
$result = mysqli_query("$sql");
$row = mysqli_fetch_assoc($result);
mysqli_close($link);
header("Content-type: image/jpg");
echo $row['imagen'];
?>
这应该显示数据库中的所有行以及相同的图像,但它所做的是显示所有行及其相应的信息和损坏的图像。
【问题讨论】:
-
如果您在新的浏览器窗口中打开
getImage.php,您应该会看到错误。这是因为您对mysqli_select_db()和mysqli_query()的调用缺少$link参数。你为什么不像test.php那样使用面向对象的api(即$link->select_db()和$link->query())? -
Note: I know it's not recommended to do this, but currently i have too.为什么?您需要这种方式是否有特定原因?也许这是一个X-Y problem,我们可以帮助您? -
感谢您的回复。问题是我目前正在做一个学校项目,我几乎是这方面的初学者,我正在使用一个 java 项目将数据插入 MysQL 数据库,我发现这样做的唯一方法是使用 BLOB类型。
-
关于您的第一个问题,这两个代码块都源自我从 stackoverflow 问题中尝试的其他解决方案。就像我说的那样,我真的只是初学者,我不确定一切是如何运作的。