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

时间:2017-07-08 05:18:48

标签: php mysql mysqli

以下是我的页面跳转到“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函数时,图像不会显示。拜托,告诉我这里可以做些什么改变。

1 个答案:

答案 0 :(得分:1)

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

  

第1步:更新您的图片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 结果。