PHP: Hypertext Preprocessor (original) (raw)
odbc_setoption
(PHP 4, PHP 5, PHP 7, PHP 8)
odbc_setoption — Adjust ODBC settings
Description
odbc_setoption(
Odbc\Connection|Odbc\Result $odbc
,
int $which
,
int $option
,
int $value
): bool
Because the effects may vary depending on the ODBC driver, use of this function in scripts to be made publicly available is strongly discouraged. Also, some ODBC options are not available to this function because they must be set before the connection is established or the query is prepared. However, if on a particular job it can make PHP work so your boss doesn't tell you to use a commercial product, that's all that really matters.
Parameters
odbc
Is a connection id or result id on which to change the settings. For SQLSetConnectOption(), this is a connection id. For SQLSetStmtOption(), this is a result id.
which
Is the ODBC function to use. The value should be 1 for SQLSetConnectOption() and 2 for SQLSetStmtOption().
option
The option to set.
value
The value for the given option
.
Return Values
Returns [true](reserved.constants.php#constant.true)
on success or [false](reserved.constants.php#constant.false)
on failure.
Changelog
Version | Description |
---|---|
8.4.0 | odbc expects an Odbc\Connection or an Odbc\Result instance now; previously, aresource was expected. |
Examples
Example #1 odbc_setoption() examples
<?php // 1. Option 102 of SQLSetConnectOption() is SQL_AUTOCOMMIT. // Value 1 of SQL_AUTOCOMMIT is SQL_AUTOCOMMIT_ON. // This example has the same effect as // odbc_autocommit($conn, true);odbc_setoption($conn, 1, 102, 1);// 2. Option 0 of SQLSetStmtOption() is SQL_QUERY_TIMEOUT. // This example sets the query to timeout after 30 seconds.$result = odbc_prepare($conn, $sql); odbc_setoption($result, 2, 0, 30); odbc_execute($result); ?>
Found A Problem?
16 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).
`