(PHP 4, PHP 5, PHP 7, PHP 8)
odbc_binmode — Обрабатывает данные двоичного столбца
Функция управляет обработкой данных двоичного столбца. На ODBC-серверах функция затрагивает
следующие типы SQL-данных:
BINARY
, VARBINARY
и LONGVARBINARY
.
Режим по умолчанию устанавливают через директиву
uodbc.defaultbinmode, которая содержится в файле php.ini.
Когда двоичные SQL-данные преобразовываются в символьные C-данные
(ODBC_BINMODE_CONVERT
), каждый байт (8 битов) исходных
данных представляется парой символов в кодировке ASCII. Эти символы формируют
символьное представление числа в формате ASCII в шестнадцатеричной
форме. Например, двоичное число 00000001
преобразовывается
в символьное представление "01"
, а число 11111111
— в "FF"
.
Хотя обработка столбцов с типами BINARY
и VARBINARY
зависит только от директивы binmode, обработка столбцов
с типом LONGVARBINARY
также зависит от атрибута longreadlen:
Режим директивы binmode | Значение атрибута longreadlen | Результат |
---|---|---|
ODBC_BINMODE_PASSTHRU |
0 | Сквозной сеанс |
ODBC_BINMODE_RETURN |
0 | Сквозной сеанс |
ODBC_BINMODE_CONVERT |
0 | Сквозной сеанс |
ODBC_BINMODE_PASSTHRU |
>0 | Сквозной сеанс |
ODBC_BINMODE_RETURN |
>0 | Данные возвращаются как есть |
ODBC_BINMODE_CONVERT |
>0 | Данные возвращаются как char |
В сквозном режиме функция odbc_fetch_into() возвращает из столбцов с двоичными данными пустую строку. При установке сквозного режима и вызове функции odbc_result() данные отправляются непосредственно клиенту, выводятся.
statement
Объект ODBC с результатом.
mode
Возможные значения параметра mode
:
ODBC_BINMODE_PASSTHRU
: Устанавливает сквозной режим для данных с типом BINARY
ODBC_BINMODE_RETURN
: Данные возвращаются как есть
ODBC_BINMODE_CONVERT
: Перед возвратом данные преобразовываются в тип char
Замечание: На обработку столбцов с типом двоичных данных LONG также влияет функция odbc_longreadlen().
Функция возвращает логическое значение true
.
Версия | Описание |
---|---|
8.4.0 |
Параметр statement теперь ожидает экземпляр с результом OBDC-запроса Odbc\Result;
раньше ожидался аргумент с типом resource.
|