如何从MySQL表中获取图像

时间:2012-05-16 13:21:43

标签: php mysql

我有一个给定的表结构

     |   ID    |             IMAGE                | 
     |   01    |           123.jpg                |    
     |   02    |  http://localhost/test/logo.jpg  |    
     |   03    |  http://localhost/test/pic.jpg   |    
     |   04    |           image.png              |    

我正在获取如下图所示的图像

$qry="SELECT IMAGE FROM `table`";
$res=mysql_query($qry);
while($row=mysql_fetch_row($res)){
    if($row[0])
    {
       $pic="http://localhost/test/".$row[0];
    }
    else
    {
        $pic="";
    }
    echo $pic;
}

但它对02,03图像无法正常工作

4 个答案:

答案 0 :(得分:2)

当给定值尚未以“http://”或“https://”开头时,以下内容仅在完整网址前面加上:

if($row[0])
{
    if (stripos($pic, "http://") === false && stripos($pic, "https://") === false)
        $pic="http://localhost/test/".$row[0];
    else
        $pic=$row[0];
}
else
{
    $pic="";
}

答案 1 :(得分:0)

您似乎没有标准的方式将图像存储在表格中。如果这些是唯一的格式,您需要在将图像字符串放在一起之前添加某种检查。

while($row=mysql_fetch_row($res)){
if($row[0])
   {
   if
   $pic = (strpos($row[0], "//") === false) ? "http://localhost/test/".$row[0]: $row[0];
   }
   else
   {
   $pic="";
   }
echo $pic;
}

答案 2 :(得分:-1)

我认为您从

更改了代码
 $pic="http://localhost/test/".$row[0];

 $pic="http://localhost/test/".$row[1];

因为您的图片列是$ row [1]

答案 3 :(得分:-1)

嗯,显然你得到图像02和03的这个URL:

http://localhost/test/http://localhost/test/logo.jpg
http://localhost/test/http://localhost/test/pic.jpg

显然是坏的形成。 也许你想将它添加到你的代码......

if($row[0])
   {
   if (strpos($row[0],'/')) {
     $pic=$row[0];
   } else {
   $pic="http://localhost/test/".$row[0];
   }
} else ...