无法显示存储在数据库中的图像

时间:2014-03-25 09:15:28

标签: php mysql

我想显示存储在数据库中的所有图像..然后我的问题是只会出现小方块..我需要帮助..

my maincontent.php

<?php
   error_reporting(E_ALL);
   $link = mysql_connect("localhost", "root", "") or die("Could not connect: " . mysql_error());
   mysql_select_db("login") or die(mysql_error());
   $sql = "SELECT id FROM products";
   $result = mysql_query("$sql") or die("Invalid query: " . mysql_error());
    while($row=mysql_fetch_assoc($result)){
    echo '<img src="t2.php?id='.$row['id'].'"/>';
    }
    mysql_close($link);
        ?>

我的t2.php

<?php
error_reporting(E_ALL);
if(isset($_GET['id']) && is_numeric($_GET['id'])) {

$link = mysql_connect("localhost", "root", "") or die("Could not&amp;nbsp;connect: " .  mysql_error());

mysql_select_db("login") or die(mysql_error());

$sql = "SELECT photo FROM products WHERE id={$_GET['id']}";

$result = mysql_query("$sql") or die("Invalid query: " . mysql_error());

header("Content-type: image/jpeg");
echo mysql_result($result, 0);
mysql_close($link);
}else{
echo 'Please use&;nbsp;a real id number';

}
?>

我希望有人可以帮我解决这个问题。

2 个答案:

答案 0 :(得分:0)

我不知道您是如何在数据库中保存图像的(直接图像或图像路径)。但似乎你必须改变那些:

更改此行:

 $result = mysql_query($sql) or die("Invalid query: " . mysql_error());

为:

 $result = mysql_query($sql) or die("Invalid query: " . mysql_error());

和你的t2.php

更改:

$result = mysql_query($sql) or die("Invalid query: " . mysql_error());

到:

$result = mysql_query($sql) or die("Invalid query: " . mysql_error());

您需要使用mysqli_*PDOmysql_*所有函数都已弃用。

答案 1 :(得分:-1)

更改为此。你的t2.php

 <?php
    $imageId = intval($_GET["id"]);

    $query = mysql_query("SELECT img FROM images WHERE id = ". $imageId);
    $row = mysql_fetch_array($query);

    $mime = null;
    // place $type init. here
    if ($type=="pjpeg") // <<< where do you get $type btw?
        $mime = "image/jpeg";

    $b64Src = "data:".$mime.";base64," . base64_encode($row["img"]);
    echo '<img src="'.$b64Src.'" alt="" />';
    ?>