Выгрузить выбранные товары в CSV, сохранив ноль и кавычки

Фактические данные получены через расширение interbase от отдельной локальной базы Firebird. Собственные учебные объекты удалены после наблюдений.

Наблюдаемый результат программы
НаблюдениеРезультат
Файл рядом с example.phpcatalog.csv
Заголовок CSVid;title;stock
Первая строка CSV1;"Кабель; силовой";0
Вторая строка CSV2;"Клемма ""мини""";4
Выгружено товаров2
Нулевой остаток сохранёнда
Архивный товар исключён SQLда
Обратное чтение CSV восстановило поляда
Строки и дополнительные наблюдения
{
    "query_columns": [
        "ID",
        "TITLE",
        "STOCK"
    ],
    "where_active": 1,
    "order_by": "ID",
    "fetched_rows": [
        [
            1,
            "Кабель; силовой",
            0
        ],
        [
            2,
            "Клемма \"мини\"",
            4
        ]
    ],
    "csv_filename": "catalog.csv",
    "csv_utf8": "id;title;stock\n1;\"Кабель; силовой\";0\n2;\"Клемма \"\"мини\"\"\";4\n",
    "parsed_csv": [
        [
            "id",
            "title",
            "stock"
        ],
        [
            "1",
            "Кабель; силовой",
            "0"
        ],
        [
            "2",
            "Клемма \"мини\"",
            "4"
        ]
    ],
    "sha256": "020c7a02e99b58c45a945391b4f81be26cad25aa4b92809b61dc56e6819faf77",
    "eof": true,
    "production_export_needs_row_accumulation": false
}

Самостоятельный запуск создаёт result.json с данными и metrics.json с проверками рядом с example.php.