PHP 5.6.0 released

ODBC Funzioni

Indice dei contenuti

  • odbc_autocommit — Valorizza il parametro autocommit
  • odbc_binmode — Gestione delle colonne di dati binari
  • odbc_close_all — Chiude tutte le connessioni ODBC
  • odbc_close — Chiude una connessione ODBC
  • odbc_columnprivileges — Restituisce un identificatore di risultato che permette di ricavare l'elenco delle colonne e dei privilegi ad esse associati.
  • odbc_columns — Elenca i nomi delle colonne nella tabella specificata.
  • odbc_commit — Esegue una transazione ODBC
  • odbc_connect — Apre una connessione con una fonte di dati
  • odbc_cursor — Restituisce il nome del cursore
  • odbc_data_source — Restituisce informazionisulla connessione corrente
  • odbc_do — Sinonimo di odbc_exec
  • odbc_error — Restituisce l'ultimo codice di errore
  • odbc_errormsg — Restituisce l'ultimo messaggio d'errore
  • odbc_exec — Prepara ed esegue una espressione SQL
  • odbc_execute — Esecuzione di un'espressione memorizzata
  • odbc_fetch_array — Scarica una riga da un risultato in una matrice
  • odbc_fetch_into — Scarica una riga del risultato della query in un array
  • odbc_fetch_object — Scarica una riga da un risultato come oggetto
  • odbc_fetch_row — Estrae una riga
  • odbc_field_len — Restituisce la dimensione (precisione) di un campo
  • odbc_field_name — Restituisce il nome della colonna
  • odbc_field_num — Restituisce il numero di colonna
  • odbc_field_precision — Sinonimo di odbc_field_len
  • odbc_field_scale — Restituisce la scala di un campo
  • odbc_field_type — Tipo di dato di campo
  • odbc_foreignkeys — Restituisce l'elenco delle chiavi esterne per la tabella indicata, oppure la lista delle chiavi esterne in altre tabelle che fanno riferimento alla chiave primaria della tabella indicata.
  • odbc_free_result — Libera le risorse associate ad un risultato
  • odbc_gettypeinfo — Restituisce un identificatore di risultato contenente informazioni sui tipi di dati supportati dalla sorgente di dati
  • odbc_longreadlen — Gestione di colonne LONG
  • odbc_next_result — Verifica se sono disponibili più risultati
  • odbc_num_fields — Numero di colonne in un esito
  • odbc_num_rows — Numero di righe in un risultato
  • odbc_pconnect — Apre una connessione persistente verso un database
  • odbc_prepare — Predispone un'espressione all'esecuzione
  • odbc_primarykeys — Restituisce un identificatore di risultato che può essere utilizzato per ricavare il nome della colonna che contiene la chiave primaria della tabella.
  • odbc_procedurecolumns — Recupera informazioni sui parametri delle procedure.
  • odbc_procedures — Restituisce l'elenco delle procedure memorizzate in una specifica sorgente di dati.
  • odbc_result_all — Visualizza il risultato in una tabella HTML
  • odbc_result — Restituisce il contenuto dei campi
  • odbc_rollback — Annulla una transazione
  • odbc_setoption — Impostazione dei parametri ODBC
  • odbc_specialcolumns — Restituisce sia il set di colonne che identificano in modo univoco una riga nella tabella, sia colonne che sono automaticamente aggiornate quando un qualsiasi campo della riga viene aggiornato da una transazione.
  • odbc_statistics — Recupera informazioni statistiche sulla tabella
  • odbc_tableprivileges — Elenca le tabelle ed i privilegi ad esse associati.
  • odbc_tables — Restituisce l'elenco delle tabelle presenti in una specifica sorgente di dati
add a note add a note

User Contributed Notes 9 notes

vbwebprofi at gmx dot de
10 years ago
On my search for a function to retriew the NewID of an inserted row wich has an autoincrement I found this solution like the mysql_insert_id for an ODBC connection to MS-Access :

// make your connection below
$Connection = odbc_connect(...);
$Result = odbc_exec($Connection, "select @@identity");
$NewID = odbc_result($Result, 1);

// make here all what you want with the NewID


In my mind this should also work with MS-SQL-Server and with Sybase - via ODBC and direct (mssql_.../sybase_...).

HTH ...


7 years ago
I had big performance problems retrieving data form MS SQL Server with odbc only when the query was unsing a join.

I found out, that I had to connect with the cursor-type "SQL_CUR_USE_ODBC" and everything was ok:

$conn = odbc_connect("ShopLive", 'shop', 'xxx', SQL_CUR_USE_ODBC);
sven at ajaxtechforums dot com
8 years ago
I found this to be a perfect alternative to the MaxDB special drivers of version 7.5.00. Just weren't that easy to install on *nix. Windows seems fine. Anyway The ODBC is a perfect alternative for connecting the SAPDB/MaxDB towards PHP.

Installation guide for the odbc alternative (instead of the MAXDB-php driver) can be found here:
9 years ago
In response to Holger's comment about using @@identity:

Be carefull. If the table you're inserting into has a trigger that also inserts into another table that has an identity column you'll get the key of that other table! use scope_identity() instead of @@identity
9 years ago
I searched for the solution of why odbc connection of a network remote drive under Windows + Apache 2.0.X, cannot give the query, but seems no one provides the solution.

In fact, it is very simple.
Go to Control Panal -> Services;
Find and double click "Apache2";
In the page of "Log On", choose Log on as "This account" and give an account in the web server system which have the right to control the network remote drive;
Finally, restart Apache, and that's it.
denials at gmail dot com
9 years ago
Ever wonder why you're experiencing really slow data retrieval times using IBM DB2 Universal Database for Linux, UNIX, and Windows? The default cursor type used by Unified ODBC is not supported by DB2, so it gets downgraded to a forward-only cursor -- and that negotiation occurs with every row fetch.

One way to force your PHP applications to use forward-only cursors is to modify your DB2 client configuration with a handy CLI patch2 setting value of 6:


You have to update this client setting on the same machine on which you are running the PHP application. This works on Windows operating systems as well as on Linux & UNIX operating systems.

I ran a few basic benchmarks (fetch 10,000 rows consisting of 3 INTEGER columns from a remote database server) and concluded that this setting can make a major difference to your application speed:

Without CLI patch2 setting: ~22 seconds
With CLI patch2 setting: ~ 1.75 seconds

Note that the drawback of using this patch setting (or any other method of using forward-only cursors) makes odbc_num_rows() always return "-1" for the number of rows affected by a SELECT statement.
pascals at NOSPAM dot pobox dot com
10 years ago
If the bundled ODBC library stumbles on some field formats (like some REAL from Pervasive.SQL), have a look at

After many headaches, I have adoped odbtp: it's a very solid library and best of all it's not tied to a particular OS.
chaz_meister_rock at yahoo dot com
7 years ago
Windows 64 Caveats with ODBC

I'm pretty sure PHP only accesses the 32-bit ODBC stuff on Windows 64.  Therefore, you will need to configure your ODBC DSNs via the Data Source Administrator found at:

xangelusx at hotmail dot com
8 years ago
If you receive an error stating "Connection is busy with results for another hstmt, SQL state S1000 in SQLExecDirect" try opening your odbc connection using the SQL_CURSOR_FORWARD_ONLY option

= odbc_connect($dsn, $username, $password, SQL_CURSOR_FORWARD_ONLY)
    or die(
'Error connecting to server. Server says: '.htmlspecialchars(odbc_errormsg()));
To Top