PHP 8.3.4 Released!

odbc_tables

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

odbc_tablesRestituisce l'elenco delle tabelle presenti in una specifica sorgente di dati

Descrizione

odbc_tables(
    resource $connection_id,
    string $qualifier = ?,
    string $owner = ?,
    string $name = ?,
    string $types = ?
): resource

Restituisce tutte le tabelle nel range richiesto.

Per supportare l'enumerazione dei qualificatori, dei proprietari, e dei tipi di tabella, è disponibile la seguente semantica speciale per i qualifier, owner, name, and table_type:

  • Se qualifier è un carattere di percentuale (%) e owner e name sono stringhe vuote, allora il set di risultati contiene una lista di qualificatori validi per la sorgente dati. (Tutte le colonne eccetto la colonna TABLE_QUALIFIER contengono dei valori NULL.)
  • Se owner è un carattere di percentuale (%) e qualifier e name sono stringhe vuote, allora il set di risultati contiene una lista di proprietari validi per la sorgente dati. (Tutte le colonne eccetto la colonna TABLE_OWNER contengono dei valori NULL.)
  • Se table_type è un carattere di percentuale (%) e qualifier, owner e name sono stringhe vuote, allora il set di risultati contiene una lista di tipi della tabella validi per la sorgente dati. (Tutte le colonne eccetto la colonna TABLE_TYPE contengono dei valori NULL.)

Elenco dei parametri

connection_id

L'identificativo di connessione ODBC, vedere odbc_connect() per ulteriori dettagli.

qualifier

Il qualificatore.

owner

Il proprietario. Accetta dei pattern di ricerca ('%' per trovare zero o più caratteri e '_' per trovare un carattere singolo).

name

Il nome. Accetta dei pattern di ricerca ('%' per trovare zero o più caratteri e '_' per trovare un carattere singolo).

types

Se table_type non è una stringa vuota, esso dovrà contenere una lista di valori separati da virgola per i tipi di interesse; ogni valore potrebbe essere racchiuso tra virgolette singole (') o meno. Per esempio, "'TABLE','VIEW'" o "TABLE, VIEW". Se la sorgente dati non supporta un tipo della tabella specificata, odbc_tables() non restituisce nessun risultato per quel tipo.

Valori restituiti

Restituisce un identificatore di risultato ODBC contenente le informazioni o false in caso di fallimento.

Il set di risultati ha le seguenti colonne:

  • TABLE_QUALIFIER
  • TABLE_OWNER
  • TABLE_NAME
  • TABLE_TYPE
  • REMARKS

Il set di risultati è ordinato da TABLE_TYPE, TABLE_QUALIFIER, TABLE_OWNER e TABLE_NAME.

Vedere anche:

add a note

User Contributed Notes 4 notes

up
2
liquidicee at hotmail dot com
23 years ago
Here's how to get a list of all the tables in your database.. with an actual example of how its done and how to get the results.. and you don't need to put in schema and all that other crap

<?php
$conn
= odbc_connect("$database", "$username", "$password");
$tablelist = odbc_tables($conn);
while (
odbc_fetch_row($tablelist)) {
if (
odbc_result($tablelist, 4) == "TABLE")
echo
odbc_result($tablelist, 3) ."<br>";
}
?>

to understand what the above is doing,
use odbc_result_all($tablelist); this will show you EVERYTHING returned by odbc_tables() then you can look through it and see better how odbc_tables() works and what exactly it returns in the string to get a better idea on how to deal with it.
it would have saved me alot of time if i would have just taken a look at the full string returned by odbc_tables(), so i suggest you take the minute or two and look... here is an example of how to do it..which would have been helpful for me ;x.

<?php
$conn
= odbc_connect("$database", "$username", "$password");
$tablelist = odbc_tables($conn);
while (
odbc_fetch_row($tablelist)) {
echo
odbc_result_all($tablelist);
}
?>

hopefully this will help some people.. i have alot more to add about this but no time :(
so again hope this helps.
Liquidice
up
0
narcomweb at wanadoo dot fr
18 years ago
Here a Code for listing Table names
<?php
$dbh
= odbc_connect($dsn, $user, $pwd);

$result = odbc_tables($dbh);

$tables = array();
while (
odbc_fetch_row($result)){
if(
odbc_result($result,"TABLE_TYPE")=="TABLE")
echo
"<br>".odbc_result($result,"TABLE_NAME");

}
?>
You don't have views or System tables with.
Only simple tables in your database.
up
0
iggvopvantoodlwin
20 years ago
With regard to the note made on results not working.
Test the database with the easy:

odbc_result_all(odbc_tables($db));

$db is obviously a connected batadase. Then start to experiment:

if(!$odbcr=odbc_tables($db,"udb","", "%", "'TABLE'"))

"udb" is the DNS - aka 'name of my ODBC database in the Windows ODBC thingamy'. In result_all the full path was shown but I just used the name I assigned; either should work.

The second parameter "" is listed by result_all as "TABLE_SCHEM" and all items were "NULL", so I have put "".

The third parameter is "%". According to result_all this col is "TABLE_NAME", so I could have put the name of one of my tables, i.e. "Address".

In my case I have an Access database setup with several tables. In ODBC I have created a link. Running the all on everything result above shows a set of system tables which I do not need to know about at this point so I look at the result and then build my new table check using the "TABLE" string as the tables I am interested in are listed as "TABLE" under their "TABLE_TYPE" column.
up
-7
pmains at ux dot com
18 years ago
This probably works for a variety of formats, but if you want a list of *just* the table names from an SQL dsn source (I'm using MSSQL), here's the code.

<?php

# ... assign $dsn, $uid, & $pwd ...

$dbh = odbc_connect($dsn, $uid, $pwd);

$result = odbc_tables($dbh);

$tables = array();
while (
odbc_fetch_row($result))
array_push($tables, odbc_result($result, "TABLE_NAME") );

foreach(
$tables as $t ) {
echo
"$t\n";
}

?>
To Top