2017-06-02 12 views
1

イメージをBLOBとして取得しようとすると、次のレスポンスが返されます。 レスポンスのコンテンツは、__toString()、" boolean "が実装された文字列またはオブジェクトである必要があります。 、私はすでにブロブを取り巻くさまざまな質問に見えたが、答えを見つけることができませんでしたSQLデータベースからBLOB(MAX)イメージを正しく取得する方法

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); 
    } 
} 

任意の助けになります。

私のコードは次のよう、 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ようです大変感謝します。 クエリはデータベース自体で機能しました。 $ detailresult = $ resultここにあります。これは私がちょうどデシベルで画像のパスをアップロードし、そこから行くことにした把握するために長い間にかかっているので


(私は私のルーティングコードを挿入する必要がある場合は私に知らせてください)。疑問は残るものの、私は誤植おそらくあり、この問題

+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

ええ、私は$ detailresultと等しい$ resultを作るコードを持っています、それを示してくれないのは残念です。 – TerranGaming

+0

@TerranGamingあなたが提供した情報に関して質問を更新してもらえますか? – alalp

関連する問題