Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在一个HTTP响应中使用PHP从Mysql提供4个图像(blob)?_Php_Mysql_Image - Fatal编程技术网

如何在一个HTTP响应中使用PHP从Mysql提供4个图像(blob)?

如何在一个HTTP响应中使用PHP从Mysql提供4个图像(blob)?,php,mysql,image,Php,Mysql,Image,我正在尝试使用PHP和MySQL数据库显示4个图像。我必须将4个图像显示为行 我使用带有字段的cars表(id\u car,car\u image1,car\u image2,car\u image3,car\u image4),所有图像都是blob数据类型 $id = $_GET['id']; $link = mysql_connect("localhost", "root", ""); mysql_select_db("cars_database"); $sql = "SELECT car

我正在尝试使用PHP和MySQL数据库显示4个图像。我必须将4个图像显示为行

我使用带有字段的cars表(
id\u car
car\u image1
car\u image2
car\u image3
car\u image4
),所有图像都是blob数据类型

$id = $_GET['id'];

$link = mysql_connect("localhost", "root", "");
mysql_select_db("cars_database");
$sql = "SELECT car_image1, car_image2, car_image3, car_image4 FROM cars WHERE id_car='$id'";
$result = mysql_query("$sql");

mysql_close($link);
while($row=mysql_fetch_array($result))
{
    header('Content-type: image/jpeg');
    echo $row['car_image1'];
    echo $row['car_image2'];
    echo $row['car_image3'];
    echo $row['car_image4'];    
}
我只能显示一个图像,不能显示其他图像。因为我是这项技术的新手,所以我需要帮助。

这就是HTTP的工作原理(至少是当前版本):您不能同时拥有指向多个资源的URL。您的脚本需要发送一个图像

简单地说,叫它四次:


您需要定义图像的路径

<?php
    while($row=mysql_fetch_array($result))
    {
     header('Content-type: image/jpeg');    
?>  
    <img src="path<?php echo $row['car_image1']; ?>" alt="" />
    <img src="path<?php echo $row['car_image2']; ?>" alt="" />
    <img src="path<?php echo $row['car_image3']; ?>" alt="" />
    <img src="path<?php echo $row['car_image4']; ?>" alt="" />
<?php
    }
?>  

“alt=”“/>
“alt=”“/>
“alt=”“/>
“alt=”“/>

检查从2到4的图像路径。他们说得对吗。在IE中打开它,如果您看到断开的图像,则说明路径中存在一些问题,路径为
标题('Content-type:image/jpeg')您只能显示一个图像,浏览器将只解析第一个图像并删除其余图像(或者崩溃,甚至取决于它的编程程度)。你能做的就是从四个图像中创建一个图像,然后为这一个图像服务。您可以使用像gd:-这样的图像库来实现这一点,但您的问题并不清楚您到底想要什么。此外,示例代码中还存在SQL注入的安全问题。要么清理“id”,要么使用预先准备好的语句(更好)。好吧,你也可以从四个映像中创建一个映像,因为这是PHP,那么这可能是你要求的吗?到目前为止,我还不清楚这个问题。如果你想在HTML中插入内联图像,你不能只插入原始的二进制数据。您需要将其编码为一个正确的。但我不建议将其作为插入图片的一般方法。
<?php
    while($row=mysql_fetch_array($result))
    {
     header('Content-type: image/jpeg');    
?>  
    <img src="path<?php echo $row['car_image1']; ?>" alt="" />
    <img src="path<?php echo $row['car_image2']; ?>" alt="" />
    <img src="path<?php echo $row['car_image3']; ?>" alt="" />
    <img src="path<?php echo $row['car_image4']; ?>" alt="" />
<?php
    }
?>