来自MySQL的PHP显示图像BLOB

来自MySQL的PHP显示图像BLOB,php,mysql,Php,Mysql,我试图在数据库中显示BLOB列中存储的图像 我使用SELECT键从数据库中获取数据,对数据执行不转换,并使用以下内容显示数据(来自一个脚本,该脚本的唯一输出如下所示): 请注意,chrome正在将内容大小显示为图像的正确大小以及正确的mime类型(image/jpeg)。在标题之前没有任何内容回响,我检查了数据库中的blob是否正确。标记前后也没有尾随空格 chrome/IE显示图像图标,但不显示图像本身。有什么想法吗 编辑:从数据库中获取图像,如下所示: $sql = "SELECT * FR

我试图在数据库中显示BLOB列中存储的图像

我使用SELECT键从数据库中获取数据,对数据执行不转换,并使用以下内容显示数据(来自一个脚本,该脚本的唯一输出如下所示):

请注意,chrome正在将内容大小显示为图像的正确大小以及正确的mime类型(
image/jpeg
)。在标题之前没有任何内容回响,我检查了数据库中的blob是否正确。
标记前后也没有尾随空格

chrome/IE显示图像图标,但不显示图像本身。有什么想法吗

编辑:从数据库中获取图像,如下所示:

$sql = "SELECT * FROM products WHERE id = $id";
$sth = $db->query($sql);
$row = $sth->fetch();
$image = $row['image'];
var_dump($image)提供:


这是我用来显示blob中的图像的:

echo '<img src="data:image/jpeg;base64,'.base64_encode($image->load()) .'" />';
echo'load()).“/>”;

这是我用来显示blob图像的:

echo '<img src="data:image/jpeg;base64,'.base64_encode($image->load()) .'" />';
echo'load()).“/>”;
像这样试试

用于插入数据库中

$db = mysqli_connect("localhost","root","","DbName"); //keep your db name
$image = addslashes(file_get_contents($_FILES['images']['tmp_name']));
//you keep your column name setting for insertion. I keep image type Blob.
$query = "INSERT INTO products (id,image) VALUES('','$image')";  
$qry = mysqli_query($db, $query);
用于从Blob访问图像

$db = mysqli_connect("localhost","root","","DbName"); //keep your db name
$sql = "SELECT * FROM products WHERE id = $id";
$sth = $db->query($sql);
$result=mysqli_fetch_array($sth);
echo '<img src="data:image/jpeg;base64,'.base64_encode( $result['image'] ).'"/>';
$db=mysqli_connect(“localhost”、“root”、“”、“DbName”)//保留您的数据库名称
$sql=“从id=$id的产品中选择*”;
$sth=$db->query($sql);
$result=mysqli\u fetch\u数组($sth);
回声';
希望它能帮助你

谢谢。

像这样试试

用于插入数据库中

$db = mysqli_connect("localhost","root","","DbName"); //keep your db name
$image = addslashes(file_get_contents($_FILES['images']['tmp_name']));
//you keep your column name setting for insertion. I keep image type Blob.
$query = "INSERT INTO products (id,image) VALUES('','$image')";  
$qry = mysqli_query($db, $query);
用于从Blob访问图像

$db = mysqli_connect("localhost","root","","DbName"); //keep your db name
$sql = "SELECT * FROM products WHERE id = $id";
$sth = $db->query($sql);
$result=mysqli_fetch_array($sth);
echo '<img src="data:image/jpeg;base64,'.base64_encode( $result['image'] ).'"/>';
$db=mysqli_connect(“localhost”、“root”、“”、“DbName”)//保留您的数据库名称
$sql=“从id=$id的产品中选择*”;
$sth=$db->query($sql);
$result=mysqli\u fetch\u数组($sth);
回声';
希望它能帮助你


谢谢。

因为我必须在blob字段/列中存储各种类型的内容,所以我想像这样更新我的代码:

echo "data: $mime" $result['$data']";
其中:
mime
可以是任何类型的图像、文本、word文档、文本文档、PDF文档等。。。内容数据类型是数据库中的
blob

因为我必须在blob字段/列中存储各种类型的内容,所以我想像这样更新代码:

echo "data: $mime" $result['$data']";
其中:

mime
可以是任何类型的图像、文本、word文档、文本文档、PDF文档等。。。内容数据类型是数据库中的
blob

请发布构成
$image
的内容(即查询等)@user2732663是否尝试下面的答案?尝试将
$image
保存到二进制文件并打开它,可能数据库中的数据已损坏?是否尝试在浏览器中查看源代码?有时PHP错误或通知会使输出混乱。您没有向我们展示插入图像的代码-这与检索图像的代码一样重要。请发布构成
$image
的内容(即查询等)@user2732663您是否尝试了我下面的答案?尝试将
$image
保存到二进制文件并打开它,数据库中的数据可能已损坏?您是否尝试在浏览器中查看源代码?有时PHP错误或通知会使输出混乱。您没有向我们展示插入图像的代码,这与检索图像的代码一样重要。您能举一个例子,说明如何从Ajax调用中获取mysql查询的用户id(“SELECT*FROM products,其中id=$id”)?我会非常感激的。你是一个生命的救世主。我想在html iframe上显示这个回声。如何做到这一点?我很感激!你好我真的很欣赏这一点,但是如果图像是另一种格式,会发生什么呢?您能举一个例子,说明如何从Ajax调用中获取mysql查询的用户id(“SELECT*FROM products,其中id=$id”)?我会非常感激的。你是一个生命的救世主。我想在html iframe上显示这个回声。如何做到这一点?我很感激!你好我真的很欣赏这一点,但是如果图像是另一种格式,会发生什么呢?$image是一个php对象吗?工作起来很有魅力!谢谢@ProgrammingNewb您可以将图像数据类型放在$image中。它可以是$row[“photo”]中的PHP变量;很高兴知道它对你有用,我采取了不同的方法,我在我的服务器中创建了一个文件夹,并将所有图像存储在那里,我将图像的链接存储在我的mysql数据库中,然后每当我想显示图像时,调用存储在我数据库中的链接$image是php对象吗?工作得很好!谢谢@ProgrammingNewb您可以将图像数据类型放在$image中。它可以是$row[“photo”]中的PHP变量;很高兴知道它对你有用,我采取了不同的方法,我在我的服务器中创建了一个文件夹,并将所有图像存储在那里,我将图像的链接存储在我的mysql数据库中,然后每当我想显示图像时,调用存储在数据库中的链接。你的语法正确吗?语法正确吗?