PHP 8.4.2 Released!

odbc_setoption

(PHP 4, PHP 5, PHP 7, PHP 8)

odbc_setoptionНастраивает параметры ODBC-соединения или объекта ODBC с результатом запроса

Описание

odbc_setoption(
    Odbc\Connection|Odbc\Result $odbc,
    int $which,
    int $option,
    int $value
): bool

Функция настраивает параметры объекта ODBC для конкретного соединения или результата запроса. Функция помогает найти решение проблем в конкретных ODBC-драйверах. Функцией рекомендуют пользоваться только ODBC-программистам, которые понимают, как параметры влияют на объекты соединения и результата. Влияние параметров объясняют развёрнутые справочные руководства по протоколу ODBC. Список параметров, которые поддерживаются конкретным драйвером, зависит от версии драйвера.

Поскольку влияние параметров зависит от ODBC-драйвера, настоятельно не рекомендуют пользоваться функцией в общедоступных скриптах. Кроме прочего, функции недоступны отдельные параметры протокола ODBC, поскольку их требуется настроить до установки соединения или подготовки запроса. Функцией лучше пользоваться, только если она выполняет задачи, для решения которых приходится покупать коммерческий продукт.

Список параметров

odbc

Идентификатор соединения или идентификатор результата, для которого требуется изменить настройки. Для функции SQLSetConnectOption() это идентификатор соединения. Для функции SQLSetStmtOption() это идентификатор результата.

which

ODBC-функция, которую требуется вызывать. Для функции SQLSetConnectOption() указывают значение 1, а для функции SQLSetStmtOption() значение 2.

option

Параметр, который требуется установить.

value

Значение для параметра option.

Возвращаемые значения

Функция возвращает true, если выполнилась успешно, или false, если возникла ошибка.

Список изменений

Версия Описание
8.4.0 Параметр odbc теперь ожидает экземпляр класса Odbc\Connection или Odbc\Result; раньше ожидалось значение с типом resource.

Примеры

Пример #1 Примеры установки параметров функцией odbc_setoption()

<?php

// 1. Опция 102 SQLSetConnectOption() — SQL_AUTOCOMMIT.
// Значение 1 SQL_AUTOCOMMIT — SQL_AUTOCOMMIT_ON.
// Этот пример сработает аналогично
// вызову odbc_autocommit($conn, true);

odbc_setoption($conn, 1, 102, 1);

// 2. Опция 0 SQLSetStmtOption() — SQL_QUERY_TIMEOUT.
// Пример устанавливает для времени ожидания запроса 30 секунд

$result = odbc_prepare($conn, $sql);
odbc_setoption($result, 2, 0, 30);
odbc_execute($result);

?>

Добавить

Примечания пользователей 1 note

up
-4
egil at wp dot pl
15 years ago
Some options for Microsoft SQL Server ODBC:
1 - (SQL_MAX_ROWS) show top x rows
6 - (SQL_CURSOR_TYPE) zmiana kursora - ma działać dopiero w PHP 5.3

You can "translate" constant names (found on e.g. Microsoft website) to appropriate values using this page:
http://www.freepascal.org/docs-html/packages/odbcsql/index-2.html

BTW. If anyone is banging his head about "cursor type changed" warning while using execute with ORDER BY clause, then just use exec for now (remember to addslashes for yourself). In PHP 5.3 a Bug #43668 will be fixed and it will allow you to change a cursor type to SQL_CUR_USE_ODBC.

Note that you could also try to select a cursor type in odbc_connect, but that didn't work for me (much more problems appeared then it solved).
To Top