获取数据库元数据PHP/PDO

获取数据库元数据PHP/PDO,php,sql,pdo,database-metadata,Php,Sql,Pdo,Database Metadata,是否有一种方法可以使用PHP的PDO获取数据库元数据 我正在寻找类似于JavaJDBC数据库元数据接口的东西 我感兴趣的是检索给定表的外键列表,但我不希望该解决方案绑定到任何特定的DBMS 到目前为止,我发现的是信息_模式,它是ANSI/ISO SQL:2003标准并存储这些元数据,但我不确定所有RDBMS都符合它,一般来说,无SQL解决方案(如JAVA DatabaseMetadata)更可取 感谢您的输入,我不确定它们是否相等,但对于mssql,您还有一个信息模式,我不知道其他DBM是否也有

是否有一种方法可以使用PHP的PDO获取数据库元数据

我正在寻找类似于JavaJDBC数据库元数据接口的东西

我感兴趣的是检索给定表的外键列表,但我不希望该解决方案绑定到任何特定的DBMS

到目前为止,我发现的是信息_模式,它是ANSI/ISO SQL:2003标准并存储这些元数据,但我不确定所有RDBMS都符合它,一般来说,无SQL解决方案(如JAVA DatabaseMetadata)更可取


感谢您的输入,

我不确定它们是否相等,但对于mssql,您还有一个信息模式,我不知道其他DBM是否也有相同的模式

此外,您还可以使用这些来提供有关数据库结构的信息

但这并不能再次适用于所有其他DBMS(JDB使用desc而不是descripe)


因此,我想没有一种单一/一致的方法来检索多个DBMS的数据库结构,也许您可以从应用程序中的模型而不是数据库中提取结构?

这似乎是PHP PDO中缺少的一件相当严重的事情。。。而getColumnMeta仍然是“实验性的”

只是一个想法:它很难做到优雅,但在极端情况下可能需要考虑,在极端情况下,您确实希望或需要尽可能多的此数据库或列元数据:使用PHP exec()运行(对于MySQL):

然后检查dumpfile.sql。显然,您必须为其他DBMS找到类似的命令

mysqldump -d -h localhost -u username -ppwd databasename > dumpfile.sql