2010-02-08 52 views
0

我在PHP中使用Postgresql作爲後端。數據庫已由其他人設計。現在我想使用PHP從數據庫中檢索圖像。但我無法從數據庫中檢索圖像。我使用此代碼來檢索圖像,但它只顯示網頁中不可讀的字符。有時它會顯示一個小圖標(就像我們在網頁上沒有任何圖像時),但大多數情況下它會顯示一個空白頁面。存儲圖像的數據類型是「bytea」。我用來顯示圖像的代碼如下:使用PHP從postgres數據庫檢索圖像

$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)); 
    } 
} 
+0

我們不會通過電子郵件發送答案。我們將它們發佈在您的問題下,因爲其他人也可以看到它們。 – 2010-02-08 05:55:51

回答

1

您沒有看到您的結果屬性。

  1. pg_result()不是由PostgreSQL擴展定義的函數。
  2. 您不會將pg_fetch_array()的返回值存儲在變量中。

以下代碼應該向瀏覽器輸出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的文件格式。不要忘記發送正確的標題。