Search code examples
phphtmlstructurefirebird

How to show Firebird table structure in HTML page?


I try to use the code below to show table structure in a HTML page:

<HTML>
<HEAD>
<TITLE>PHP + Firebird / Interbase test (connection)</TITLE>
</HEAD>
<BODY>
<H3>FB Connect test.</H3>
<?php
// DB definition of account
define("DBNAME","xx.xxx.xx.xxx:D:\DATABASE\OCS DATA.FDB"); // data bsse name
define("DBUSER","USER"); // user name
define("DBPASS","USER"); // password

// DB connection
$dbh = ibase_connect(DBNAME,DBUSER,DBPASS);
echo ibase_errmsg();
if ($dbh == FALSE) {
echo 'could not connect to DB<BR>';
} else {
echo 'success to connect to DB<BR>';
}
$ibsql = "SHOW TABLE DOC_TO";
echo ibase_errmsg();
$result=ibase_query($ibsql);
echo $result;
?>

</BODY>
</HTML>

Why does it just show the result as "success to connect to DB"?


Solution

  • Firebird does not seem to have a SHOW TABLE or SHOW TABLES command which are specific to MySQL.

    The documentation on the IBphoenix web site states that the SHOW TABLES command is only available in the isql command line tool and nowhere else.

    In MySQL, you can do SHOW TABLES. You can use the same in Firebird's isql command-line tool, but nowhere else.

    It goes on and provides the following SQL code as a roughly equivalent solution:

    SELECT RDB$RELATION_NAME FROM RDB$RELATIONS;

    This query will show you both system and user tables. To select user tables only, use this:

    `SELECT RDB$RELATION_NAME FROM RDB$RELATIONS WHERE RDB$SYSTEM_FLAG = 0;

    Maybe you can get something equivalent from what you were trying to accomplish by querying the RDB$RELATIONS table (or maybe some other runtime information tables provided by Firebird). See also Lorenzo Alberton's post on extracting META information from a Firebird database.