无法从数据库中检索图像链接

时间:2013-09-15 10:37:05

标签: php html mysql database image

所以我发生了这个问题,我想从数据库中检索图像,这不是blob,我使用image_link并将其链接到我的文件夹"images/"

例如:

"images/Banner1_1.png" << id=1

"images/Banner1_2.png" << id=2

"images/Banner1_3.png" << id=3

并且所有这些链接都在我的数据库中。

所以我想在这里做的是,我有html代码,我希望图片使用指定的ID出现在此页面上,例如:

的index.html

<img src="get.php?id=1" />
<img src="get.php?id=2" />
<img src="get.php?id=3" />

get.php

<?php
mysql_connect("localhost", "root", "") or die(mysql_error()) ;
mysql_select_db("aliquantum") or die(mysql_error()) ;
$id = $_GET['id'];

if(!isset($id) || empty($id) || !is_int($id)){
    die("Please select your image!");
}else{
$sql = "SELECT image_link FROM images WHERE id='".$id."'";
$url = mysql_query($sql);
$row = mysql_fetch_array($url);
$link= '.$row['image_link'].';
echo $link;
}
?>

但它没有显示任何内容或只是出现了破碎的图像图标。

5 个答案:

答案 0 :(得分:1)

这里有多个选项:

1)通过get.php流式传输图像,就像你现在尝试的那样,但get.php返回的输出不正确。它应该返回:

$location='/location/to/image.gif';
$size = getimagesize($location);
$img_type = $size['mime'];
$data = file_get_contents($location);
$img_data = addslashes($data);
header("Content-type: ".$img_type);
print $img_data;

2)使用javascript获取图像名称/路径,并将img标记的src设置为指向磁盘上的文件。

答案 1 :(得分:0)

我不熟悉php,但我看到的是你要回归图像

$link='<img src= "'.$row['image_link'].'">';

我猜你只需要返回网址。

$link='.$row['image_link'].';

答案 2 :(得分:0)

你回应链接的方式是问题。它应该是

$link=$row['image_link'];

如果这不起作用,那么你还必须检查路径以确保只使用db中的路径获取文件。您可能需要在路径中添加内容

答案 3 :(得分:0)

将image_link存储在数据库中这是个坏主意,但由于您已经决定这样做,让我们看一下完成图像的显示。

首先:(create any function for retrieve image and include in your index page.)

<?PHP
   function images($id)
    {   //please Secure your ID using int() or is_numeric ....

     $sql="select image_link from images where id=$id";

       $rs=mysql_query($sql) or die (mysql_error());

       $row =mysql_fetch_array($rs,MYSQL_BOTH);

     $data = $row[0];

   echo '<img src="images/'.$data.'">';
   }
?>

现在显示(after include function)

<?PHP
    echo images('1'); // your dynamic id
?>

现在已经工作了!

答案 4 :(得分:-2)