使用PHP ODBC库从db2 AS/400检索BLOB字段
我需要检索保存在db400表的blob字段中的一些图像。 我正在尝试使用PHP ODBC库,下面是示例代码:使用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
//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的内容