我正在尝试使用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'];
}
答案 0 :(得分:12)
解决此问题的一种可能方法是使用单独的脚本来动态输出图像的内容,例如。 :
image.php
header('Content-type: image/jpg');
// DataBase query and processing here...
echo $data['myImage'];
并在需要显示存储在数据库中的图像时调用它,例如。在你的循环中:
echo '<img src="image.php?id=' . $data['id'] . '">';
但是将数据存储在数据库中 会对您的服务器产生影响 ,除非它们非常小或者您有正当理由为此,您应该只将其物理位置存储在磁盘上。
如果您希望隐藏用户的图像位置或控制访问权限,也可以使用此方法,但对于该情况,有更好更快的替代方案。
答案 1 :(得分:1)
只是提到通过编码将图像直接嵌入到html中的可能性,您可以使用:
$query = "SELECT myImage FROM image";
if ($result = mysqli_query($link, $query)) {
while ($row = mysqli_fetch_assoc($result)) {
echo '<img src="data:image/jpg;base64,' . base64_encode($row['myImage']) . '">';
}
}
临:
缺点:
有关基本编码图像的更多信息: