2017-07-08 39 views
3

下面是在我的页面跳转到“prac_image_display”显示图像的代码: -如何使用MYSQLi查询在数据库中显示图像中的图像?

<?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时,它运行良好,所有图像都完美地显示在本地主机上,但是当我用MYSQLi函数替换MYSQL函数时,图像不显示。请告诉我在这里可以做些什么改变。

+0

需要注意的地方。在你的while循环中,循环内代码的第三行应该是 – Difster

+1

你在'database.php'中有什么?直到我们看到,我们不能说出你遇到什么问题 –

+0

也显示你的database.php – JYoThI

回答

2

您可以按照以下步骤到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 

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

IF,不显示图像正常

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

假设,如果您上传PNG图片,这将不起作用。

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

注:也不要忘记DEBUGSQL结果。