我尝试使用第一条评论中的建议,但它并没有按我预期的那样工作……我想获取所有数据,无论它有多大,但发生了奇怪的事情,我最终找到了这个解决方案(至少对于 MS SQL 2000 而言,至少对于几 MB 的二进制数据有效)
<?php
$link = odbc_connect($odbc_source_name, $user, $pass);
$sql = 'SELECT image_data_column FROM some_table WHERE record_id=1';
$result = odbc_exec ($link, $sql)
if (!$result)
{
trigger_error ('[sql] exec: '.$sql, E_USER_ERROR);
}
odbc_binmode ($result, ODBC_BINMODE_PASSTHRU);
odbc_longreadlen ($result, 0);
ob_start(); while (odbc_fetch_row($result))
{
odbc_result($result, 1); }
odbc_free_result($result);
$contents = ob_get_clean();
?>