【问题标题】:how to display images in php from database using MYSQLi queries?如何使用 MYSQLi 查询在 php 中显示数据库中的图像?
【发布时间】:2017-07-09 14:07:14
【问题描述】:

以下是我的页面跳转到“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 函数时,图像不会显示。请告诉我我可以在此处进行哪些更改。

【问题讨论】:

  • 注意点。在您的 while 循环中,循环内代码第三行上的 应该是
  • 您在database.php 中有什么?在我们看到之前,我们无法判断您遇到了什么问题
  • 也显示你的 database.php
  • 附注:您的数据库查询很容易受到 sql 注入攻击。请了解结合使用“准备语句”和“参数绑定”的安全优势。
  • 你检查mysqli的连接错误了吗?不能一味用mysqli_替换所有的mysql_函数

标签: php mysql mysqli


【解决方案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");

注意:也别忘了DEBUGSQL结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    • 2017-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多