我尝试使用下面的代码在 HTML 页面中显示表结构:
<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>
为什么结果只显示“连接数据库成功”?
Firebird 似乎没有特定于
MySQL的
SHOW TABLE
或 SHOW TABLES
命令。
IBphoenix 网站上的 文档 指出
SHOW TABLES
命令仅在 isql 命令行工具 中可用,在其他地方不可用。
在 MySQL 中,您可以执行 SHOW TABLES。你 可以在Firebird的isql中使用相同的 命令行工具,但没有其他地方。
它继续提供以下 SQL 代码作为大致等效的解决方案:
SELECT RDB$RELATION_NAME FROM RDB$RELATIONS;
此查询将向您显示两个系统 和用户表。选择用户表 仅使用此:
`从 RDB$RELATIONS 中选择 RDB$RELATION_NAME,其中 RDB$SYSTEM_FLAG = 0;
也许您可以通过查询
RDB$RELATIONS
表(或者可能是 Firebird 提供的其他一些运行时信息表)来获得与您试图完成的内容相同的内容。另请参阅 Lorenzo Alberton 的关于 从 Firebird 数据库中提取 META 信息 的帖子。
请注意,在 PHP 中您应该使用单引号
$reqest = 'select ...';
否则 $
符号将被翻译为 PHP 变量符号。