如何使用PHP从mysql显示多个图像(blob)?

Hou*_*sam 1 html php mysql image http-headers

我正在尝试使用PHP和MySql数据库显示多个图像,即使使用while循环我没有得到所有图像,我只得到一个,我的意思是表中的第一个.有什么问题 ?

我使用的是表ID_IMAGE (int, pk, auto increment)myImage (blob)

$query = mysql_query("SELECT myImage FROM image");
while($data=mysql_fetch_array($query)) {
    header('Content-type: image/jpg');
    echo $data['myImage'];
}
Run Code Online (Sandbox Code Playgroud)

CSᵠ*_*CSᵠ 12

解决此问题的可能方法是使用单独的脚本来动态输出图像的内容,例如.:

image.php

header('Content-type: image/jpg');

// DataBase query and processing here...

echo $data['myImage'];
Run Code Online (Sandbox Code Playgroud)

并在需要显示存储在数据库中的图像时调用它,例如.在你的循环内:

echo '<img src="image.php?id=' . $data['id'] . '">';
Run Code Online (Sandbox Code Playgroud)

但是在数据库中存储图像会对您的服务器产生影响,除非它们非常小或者您有充分的理由这样做,否则您应该只将它们的物理位置存储在磁盘上.

如果您希望隐藏用户的图像位置或控制访问权限,也可以使用此方法,但有更好,更快的替代方案.