使用PHP从postgres数据库中检索图像

时间:2010-02-08 05:49:23

标签: php linux postgresql

我在PHP中使用Postgresql作为后端。该数据库已由其他人设计。现在我想使用PHP从数据库中检索图像。但是我无法从数据库中检索图像。我使用此代码检索图像,但它只显示网页中不可读的字符。有时它显示一个小图标(就像我们在网页中没有任何图像时),但大多数情况下显示一个空白页面。存储图像的数据类型是“bytea”。我用来显示图像的代码如下:

$conn = pg_connect("user=xxxx password=xxxx dbname=xxxx host=xxxx");
$res = pg_query($conn, "SELECT scan_image FROM t1scandoc where image_srno='1'");
while(pg_fetch_array($res))
{
  if (pg_result($res,2))
  {
    WriteImageToFile(pg_result($res,0),$dir.pg_result($res,1),pg_result($res,2));
  }
}

1 个答案:

答案 0 :(得分:1)

您没有阅读结果属性。

  1. pg_result()不是由PostgreSQL扩展定义的函数。
  2. 您没有将pg_fetch_array()的返回值存储在变量中。
  3. 以下代码应将scan_image值输出到浏览器。

    $conn = pg_connect("user=xxxx password=xxxx dbname=xxxx host=xxxx");
    $res = pg_query($conn, "SELECT scan_image FROM t1scandoc where image_srno='1'");
    if($row = pg_fetch_array($res)) // Output only one row, we can't output multiple
    {
      echo $row['scan_image'];
    }
    

    我很遗憾不知道您scan_image的文件格式。不要忘记发送正确的标题。