使用PHP ODBC库从db2 AS/400检索BLOB字段

使用PHP ODBC库从db2 AS/400检索BLOB字段,php,odbc,binmode,Php,Odbc,Binmode,我需要检索保存在db400表的blob字段中的一些图像。 我正在尝试使用PHP ODBC库,下面是示例代码: //connect to database if(!$conn = odbc_connect($DNS, $user, $password)){ exit("Error"); } $sql = "SELECT TSMIME, TSIMG FROM SVMAGDAT.DFW3S00F W

我需要检索保存在db400表的blob字段中的一些图像。 我正在尝试使用PHP ODBC库,下面是示例代码:

    //connect to database 
    if(!$conn = odbc_connect($DNS, $user, $password)){
        exit("Error");
    }

    $sql = "SELECT TSMIME, TSIMG 
            FROM SVMAGDAT.DFW3S00F 
            WHERE TSIDMO=17 and TSPRMO=0";
    $result = odbc_exec($conn, $sql);

    $type=$lob="";
    if ($result) {                            
        odbc_longreadlen($result, 5242880);//5MB      
        odbc_binmode($result,ODBC_BINMODE_CONVERT);

        $type = odbc_result($result, "TSMIME");
        $lob = odbc_result($result, "TSIMG");
    }

    echo "<img src=\"data:$type;base64,$lob\" >";  
这些图像是用base64编码保存的,通过他的查询,我只得到一行。我尝试更改odbc_longreadlen和odbc_binmode,但没有结果

在此配置中,$lob变量为空,而$type设置正确

如果我将odbc\u binmode设置为odbc\u binmode\u PASSTHRU,我看不到任何结果,因为浏览器每次都会崩溃

有什么建议吗


谢谢

通常您会有类似于for/foreach的循环通过所有结果行进行记录。是的,但在这个简化的示例中,我只有一行作为结果,因此不需要循环结果集。您是否尝试过使用其他浏览器?看起来您的图像编码不是您告诉浏览器的内容。或者,使用wget之类的工具来检索html页面的完整内容,然后可以查看返回给webbrowser的内容