PHP 8.3.4 Released!

odbc_setoption

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

odbc_setoptionРегулирует настройки ODBC

Описание

odbc_setoption(
    resource $odbc,
    int $which,
    int $option,
    int $value
): bool

Функция позволяет настраивать параметры ODBC для конкретного соединения или результата запроса. Она используется для того, чтобы помочь найти решение проблем в специфических драйверах ODBC. Следует использовать эту функцию только программистам ODBC, понимающим, какой эффект оказывают различные параметры. Чтобы объяснить различные параметры и значения, которые можно использовать, понадобится хорошее справочное руководство по ODBC. Различные версии драйверов поддерживают разные параметры.

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

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

odbc

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

which

Используемая функция ODBC. Значение должно быть равно 1 для SQLSetConnectOption() и 2 для SQLSetStmtOption().

option

Устанавливаемая опция.

value

Значение для option.

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

Возвращает true в случае успешного выполнения или false в случае ошибки.

Примеры

Пример #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);
?>

add a note

User Contributed Notes 1 note

up
-1
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