php 5.6 \ pdo_dblib \ freetds
Еслиб это был виндовый драйвер SQLSRV, то с помощью константы PDO::SQLSRV_ENCODING_BINARY тип вполне успешно указывается и данные отправляются.
$stmt = $conn->prepare("EXEC proc @fileData = ?");
$stmt->bindParam(1, $fileData, PDO::PARAM_LOB, 0, PDO::SQLSRV_ENCODING_BINARY);
$stmt->execute();
но вот на линуксе стоит драйвер dblib, у которого нет такой константы (переехать на другой не вариант). Пробовал использовать bin2hex, а потом передавать строку, которая конвертируется уже на стороне sql в бинарный тип, но такое работает только на файлах меньше одного метра, дальше уже идут потери и слишком долгая конвертация.
Нашел пул реквест с новыми типами (DBLIB_PARAM_BINARY), но прошел уже год
https://github.com/php/php-src/pull/2168/commits/2...