PHP está truncando los datos del Blob MSSQL (4096b), incluso después de establecer los valores INI. ¿Me estoy perdiendo uno?

Estoy escribiendo un script PHP que pasa por una tabla y extrae elvarbinary(max) datos de blob de cada registro en un archivo externo. El código funciona perfectamente (utilicé prácticamente el mismo código para pasar por algunas imágenes) excepto cuando un archivo tiene más de 4096b: los datos se truncan exactamente en 4096.

He modificado los valores paramssql.textlimit, mssql.textsizeyodbc.defaultlrl Sin ningún éxito.

¿Me estoy perdiendo de algo?

<?php 
 ini_set("mssql.textlimit" , "2147483647");
 ini_set("mssql.textsize" , "2147483647");
 ini_set("odbc.defaultlrl", "0");

 include_once('common.php'); //Connection to DB takes place here.
 $id=$_REQUEST['i'];
 $q = odbc_exec($connect, "Select id,filename,documentBin from Projectdocuments where id = $id"); 
 if (odbc_fetch_row($q)){

  echo "Trying $filename ... ";
  $fileName="projectPhotos/docs/".odbc_result($q,"filename");

  if (file_exists($fileName)){
   unlink($fileName);
  } 

     if($fh = fopen($fileName, "wb")) {
      $binData=odbc_result($q,"documentBin");
         fwrite($fh, $binData) ;
         fclose($fh);
         $size = filesize($fileName);
         echo ("$fileName<br />Done ($size)<br><br>");
     }else {
      echo ("$fileName Failed<br>");
     }
 } 
?>

SALIDA

Intentando ... projectPhotos / docs / file1.pdf Listo (4096)

Intentando ... projectPhotos / docs / file2.zip Listo (4096)

Intentando ... projectPhotos / docsv3.pdf Listo (4096)

etc.

Respuestas a la pregunta(4)

Su respuesta a la pregunta