如何从SQL db中正确获取blob(MAX)图像

时间:2017-06-02 11:27:48

标签: php sql sql-server blob sqlsrv

当我尝试将图像作为blob时,我得到了这样的响应: Response内容必须是实现__toString()的字符串或对象," boolean"给出。

我的代码如下, 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的不同问题,但找不到答案,任何帮助都会非常感激。 Query在数据库本身中工作。 $ detailresult = $ result here。

(如果我需要插入我的路由代码,请告诉我)

由于这需要很长时间才弄清楚我决定只在数据库中上传图片路径并从那里开始。问题仍然存在,因为我确定我不是唯一一个有这个问题的人

1 个答案:

答案 0 :(得分:0)

可能存在拼写错误:

$result['picture']

您将结果提取到$detailresult,您应该使用它:

$detailresult['picture']

但是,您可能会从SQL查询中获得一些错误,因此我会使用sqlsrv_errors