Восстановить выбранное вложение без потери NUL и FF

Результат настоящих запросов через PDO_DBLIB. Собственные учебные объекты после наблюдений удалены.

Результат выполнения
НаблюдениеРезультат
attachment.bin13 байт; NUL и FF сохранены
Полученные байты50444F5F44424C494200FF100A
SHA256bf345993a33529a3be5bf98a84c2281cc32cf3e85262bcda1811353e554d3e96
empty.binФайл есть: 0 байт; IS NULL = 0
missing.binВложения нет: IS NULL = 1
Файлattachment.bin: точная копия выбранного тела
Полученные строки и наблюдения
{
    "catalog": [
        {
            "id": 1,
            "filename": "attachment.bin",
            "is_missing": 0,
            "byte_count": 13
        },
        {
            "id": 2,
            "filename": "empty.bin",
            "is_missing": 0,
            "byte_count": 0
        },
        {
            "id": 3,
            "filename": "missing.bin",
            "is_missing": 1,
            "byte_count": null
        }
    ],
    "selected_id": 1,
    "raw_fetch_type": "string",
    "payload_hex": "50444F5F44424C494200FF100A",
    "bytes": 13,
    "sha256": "bf345993a33529a3be5bf98a84c2281cc32cf3e85262bcda1811353e554d3e96",
    "empty_fetch_type": "string",
    "empty_fetch_bytes": 0,
    "missing_fetch_type": "null",
    "input_contract": "ASCII hex PARAM_STR_CHAR → SQL CONVERT(varbinary(max),?,2)",
    "output_contract": "VARBINARY → исходные байты PHP string → file_put_contents; без hex2bin"
}

result.json содержит те же данные. Реквизиты входа сюда не записываются.