PHP Conference Nagoya 2025

odbc_setoption

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

odbc_setoptionImposta le impostazioni di ODBC

Descrizione

odbc_setoption(
    resource $id,
    int $function,
    int $option,
    int $param
): bool

Questa funzione permette di giocherellare con le opzioni ODBC per una particolare connessione o risultato di query. È stata scritta per aiutare a trovare soluzioni ai problemi dei capriciossi driver ODBC. Probabilmente si dovrebbe usare questa funzione solo se si è un programmatore ODBC e se si conoscono gli effetti che le diverse opzioni avranno. Si avrà sicuramente bisogno di un buon riferimento di ODBC per spiegare tutte le diverse opzioni e i diversi valori che possono essere usati. Versioni di driver differenti supportano diverse opzioni.

Dato che gli effetti possono variare in base al driver ODBC, l'uso di questa funzione in script da rendere pubblicamente disponibili è fortemente sconsigliato. Inoltre, alcune opzioni ODBC non sono disponibili a questa funzione perchè devono essere impostate prima che la connessione venga stabilita o che la query venga preparata. Tuttavia, se questo può far funzionare PHP in un lavoro particolare può evitare che il capo dica di ricorrere ad un prodotto commerciale, questo è tutto ciò che importa.

Elenco dei parametri

id

È un id di connessione o un id di risultato sul quale cambiare le impostazioni. Per SQLSetConnectOption(), questo è un id di connessione. Per SQLSetStmtOption(), questo è un id di risultato.

function

È la funzione ODBC da usare. Il valore dovrebbe essere 1 per SQLSetConnectOption() e 2 per SQLSetStmtOption().

option

L'opzione da impostare.

param

Il valore per l'option data.

Valori restituiti

Restituisce true in caso di successo, false in caso di fallimento.

Esempi

Example #1 Esempi di odbc_setoption()

<?php
// 1. L'opzione 102 di SQLSetConnectOption() è SQL_AUTOCOMMIT.
// Il valore 1 di SQL_AUTOCOMMIT è SQL_AUTOCOMMIT_ON.
// Questo esempio ha lo stesso effetto di
// odbc_autocommit($conn, true);

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

// 2. L'opzione 0 di SQLSetStmtOption() è SQL_QUERY_TIMEOUT.
// Questo esempio imposta la scadenza della query dopo 30 secondi.

$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