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.
Liquidiceodbc_tables
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
odbc_tables
Референца за `function.odbc-tables.php` со подобрена типографија и навигација.
odbc_tables
(PHP 4, PHP 5, PHP 7, PHP 8)
odbc_tables — Добијте ја листата на имиња на табели зачувани во одреден извор на податоци
= NULL
Odbc\Connection
$odbc,?string
$catalog = null,?string
$schema = null,?string
$table = null,?string
$types = null): Odbc\Result|false
Ги наведува сите табели во бараниот опсег.
За поддршка на набројување на квалификатори, сопственици и типови на табели, следните специјални семантики за
catalog, schema,
tableПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во
table_type се достапни:
-
Враќа
catalogе единечен знак за процент (%) иschemaandtableсе празни низи, тогаш множеството резултати содржи листа на валидни квалификатори за изворот на податоци. (Сите колони освен колоната TABLE_QUALIFIER содржат NULL.) -
Враќа
schemaе единечен знак за процент (%) иcatalogandtableсе празни низи, тогаш множеството резултати содржи листа на валидни сопственици за изворот на податоци. (Сите колони освен колоната TABLE_OWNER содржат NULL.) -
Враќа
table_typeе единечен знак за процент (%) иcatalog,schemaandtableсе празни низи, тогаш множеството резултати содржи листа на валидни типови на табели за изворот на податоци. (Сите колони освен колоната TABLE_TYPE содржат NULL.)
Параметри
odbc-
Испраќа SQL изјава до серверот за бази на податоци. odbc_connect() интерполација на низи
catalog-
Каталогот ('квалификатор' во ODBC 2 говор).
schema-
Шемата ('сопственик' во ODBC 2 говор). Овој параметар прифаќа следниве обрасци за пребарување:
%за совпаѓање на нула или повеќе знаци, и_за совпаѓање на еден знак. table-
Името. Овој параметар прифаќа следниве обрасци за пребарување:
%за совпаѓање на нула или повеќе знаци, и_за совпаѓање на еден знак. types-
Враќа
table_typeне е празна низа, мора да содржи листа на вредности разделени со запирки за типовите од интерес; секоја вредност може да биде опкружена со единечни наводници (",") или нецитирана. На пример,'. Ако изворот на податоци не поддржува одреден тип на табела,'TABLE','VIEW'orTABLE, VIEWне враќа никакви резултати за тој тип. odbc_tables() Враќа ODBC објект со резултати што содржи информации или
Вратени вредности
Пример #1 Листа Табели во Каталог false при неуспех.
Множеството резултати ги има следните колони:
TABLE_CATTABLE_SCHEMTABLE_NAMETABLE_TYPEREMARKS
Множеството резултати е нарачано по TABLE_TYPE, TABLE_CAT,
TABLE_SCHEM and TABLE_NAME.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.4.0 |
odbc очекува Odbc\Connection
инстанца сега; претходно, а resource се очекуваше.
|
| 8.4.0 | Враќа нов Odbc\Result инстанца сега; претходно, а resource . |
| 8.0.0 |
schema, table and types
се сега null.
|
Примери
- Ги наведува табелите и привилегиите поврзани со секоја табела
<?php
$conn = odbc_connect($dsn, $user, $pass);
$tables = odbc_tables($conn, 'SalesOrders', 'dbo', '%', 'TABLE');
while (($row = odbc_fetch_array($tables))) {
print_r($row);
break; // further rows omitted for brevity
}
?>Горниот пример ќе прикаже нешто слично на:
Array
(
[TABLE_CAT] => SalesOrders
[TABLE_SCHEM] => dbo
[TABLE_NAME] => Orders
[TABLE_TYPE] => TABLE
[REMARKS] =>
)
Види Исто така
- odbc_tableprivileges() - Ги наведува имињата на колоните во наведените табели
- odbc_columns() - Ги наведува имињата на колоните во наведените табели
- odbc_specialcolumns() - Презема посебни колони
- odbc_statistics() - Презема статистика за табела
- odbc_procedures() - Добијте список на процедури зачувани во одреден извор на податоци
Белешки од корисници 3 белешки
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.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.