需要帮助从数据库访问图像

时间:2012-10-24 16:01:02

标签: php mysql image

美好的一天,我的PHP有问题,无法找到解决方案

<?php 
$pid = $_REQUEST['pid'];
$rs = mysql_query("SELECT image from images where patient_id='$pid'") or die(mysql_error());
while($row = mysql_fetch_assoc($rs));
{
$imagebytes = $row['images'];
header("Content-type: image/jpg");
echo $imagebytes;
}
?>

我通过

将其称为另一个php
echo '<img src="myimage.php?pid=51">';

但我一直收到错误 “资源被解释为图像,但是作为MIME类型文本/ html进行了转换”我暂时停留了一段时间

1 个答案:

答案 0 :(得分:0)

试试这个:

<?php
if( headers_sent() ) { die('headers already sent by something else'); }
else { header("Content-type: image/jpg"); }

$pid = intval($_REQUEST['pid']);
$rs = mysql_query("SELECT image from images where patient_id=$pid LIMIT 1") or die(mysql_error());
if($row = mysql_fetch_assoc($rs)) {
    echo $row['image'];
}
exit;

它执行最基本的输入验证,因此您不会注入SQL,检查某些内容是否已发送标头,并从代码中删除无法解释的循环。

此外,它死亡的可能原因是您有SELECT image FROM images,但您尝试访问的字段是$row['images'],但该字段不存在。这可能会打印一条错误消息,导致在您尝试设置text/html标头之前发送默认的image/jpeg标头。

,为什么$pid在您的查询中引用?它是一个字符串?请告诉我你不是将整数存储为字符串。