2017-06-02 61 views
1

當我嘗試獲取圖像作爲blob時,我得到此響應: 響應內容必須是字符串或實現__toString()," boolean "給出的對象。如何從SQL db正確獲取blob(MAX)圖像

我的代碼如下, 的GET查詢

function GET_shopimages($shopid){ 
    $currentUserName = Auth::user()->name; 
    $query = "SELECT * FROM srms_dam.dbo.pictures WHERE srms_dam.dbo.pictures.shopid = (?) "; 
    $parameters = array((int) $shopid); 
    return executeImageObjectQuery($query, $parameters); 
} 

的executeImageObjectQuery:

function executeImageObjectQuery($inputQuery, $stagingParameters){ 
     $conn = buildConnection(); 
     if($conn) { 
      $query = $inputQuery; 
      $result = sqlsrv_query($conn, $query, $stagingParameters); 
      $detailresult = sqlsrv_fetch_array($result); echo '<img 
      src="data:image/jpeg;base64,'.base64_encode($result['picture']).'"/>'; 
      sqlsrv_close ($conn); 
      return $detailresult; 
     } else { 
     return response('Cannot build database connection', 503); 
    } 
} 

我已經看了看周圍的blob不同的問題,但無法找到一個答案,任何幫助將不勝感激。查詢在數據庫本身中工作。 $ detailresult = $結果在這裏。

(如果我需要插入我的路由代碼,請讓我知道)


由於這場耗時長弄清楚我決定只上載在數據庫中的圖片路徑,並從那裏走。問題仍然存在,但因爲我敢肯定我是不是有這個問題

+2

您應評估從'sqlsrv_query'返回的內容。你可能會得到布爾結果,該方法的布爾值表示你得到'FALSE'響應。使用'sqlsrv_errors'來調查錯誤。 – alalp

+0

_ $ detailresult = $ result here_:不,看起來並不如此。 '$ result'是一個語句資源,'$ detailresult'是一個數組,null或false值。 – alalp

回答

0

有可能是一個錯字錯誤只有一個:

$result['picture'] 

你獲取了成果轉化$detailresult,你應該使用它:

$detailresult['picture'] 

不過,您可能會從您的sql查詢中得到一些錯誤,因此我會使用sqlsrv_errors

+0

是的,我有一段代碼thas使$ result等於$ detailresult,抱歉沒有顯示。 – TerranGaming

+0

@TerranGaming您能否更新您提出的與您提供的信息有關的問題? – alalp