繁体   English   中英

如何使用MYSQLi查询从数据库中显示php中的图像?

[英]how to display images in php from database using MYSQLi queries?

下面是我的页面跳转到“prac_image_display”以显示图像的代码: -

<?php
    session_start();
    include("database.php");
    $sql = mysqli_query($con,"select * from mst_subject");
    echo "<h2><table cellpadding=5>";
    while($row = mysqli_fetch_array($sql)){
        echo "<tr>";
        echo "<td><img height='50' width='50' src='prac_img_display.php? id=".$row['sub_id']."'></td><td><a href=showtest.php?subid={$row['sub_id']}>".$row['sub_name']."</td>";
        echo "<tr>";
        //$_SESSION['subid']=$row['sub_id'];
    }
    echo "</table></h2>";
?>

现在下面是用prac_image_display.php文件编写的代码: -

        <?php

       if(isset($_GET['id']))
       {
        include("database.php");
        $sql = "SELECT image FROM mst_subject WHERE 
       sub_id=".$_GET['id'].";";
       //$sql = "SELECT image FROM mst_subject WHERE sub_id=8";
        $result=mysqli_query($con,"$sql");
        header("Content-type: image/jpeg");
        echo mysqli_result($result,0);
        mysqli_close($con);
     }
     else 
     {
           echo 'Please use a real id number';
     }
    ?>

下面是用“database.php”文件编写的代码: -

    <?php
    $con=mysqli_connect("localhost","root","","test") or die("could not 
                         connect ");
    //mysql_select_db("test",$con)  or die("Could connect to Database");
    ?>

图像以BLOB形式存储在数据库中。 问题是当我在两个.php文件中使用MYSQL时如上所示它运行正常并且所有图像都完美地显示在localhost上但是当我用MYSQLi函数替换MYSQL函数时,图像不会显示。 拜托,告诉我这里可以做些什么改变。

您可以按照以下步骤进行DEBUG ,找出实际问题的位置。

第1步:更新您的Image src

src='prac_img_display.php? id=".$row['sub_id']."'
/*TO*/
src='prac_img_display.php?id=".$row['sub_id']."'

注意:因为,有一个Blank space

第2步:浏览浏览器中的图像URL ,如

example.com/prac_img_display.php?id=8

注意:检查,如果图像正确显示在浏览器窗口中。

如果,没有正确显示图像

第3步:检查header("Content-type: image/jpeg"); 是正确的。

假设,如果你上传了PNG图像,这将无效。

对于PNG图像,您应该使用header("Content-type: image/png");

注意:另外不要忘记DEBUG SQL Result。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM