微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Drupal:我怎么知道db是mysql还是postgres

我有一个复杂的查询,因为我需要我的模块在mysql和postgres上工作,我需要编写它的两个版本.

不幸的是,我不知道如何检查我使用的db是MysqL还是postgres,以了解使用哪个查询.你知道函数是否可以返回这个值吗?

解决方法:

正如@kordirko所说,一个选项是查询服务器版本:SELECT version();将在MySQL和Postgresql上工作,但不是most other database engines.

解析版本字符串总是有点脆弱,MysqL只返回版本号,如5.5.32,然后Postgresql在x86_64-unkNown-linux-gnu上返回类似Postgresql 9.4devel的内容,由gcc(GCC)编译4.7.2 20121109(Red Hat 4.7.2-8),64位.如果您要连接到与EnterpriseDB Postgres Plus或MysqL兼容的数据库之类的Postgresql兼容数据库,您会怎么做?

使用the Drupal function for the purpose, DatabaseConnection::databaseType更加安全.这避免了对数据库的往返查询,将对不理解/接受SELECT版本()的数据库起作用,并且将避免解析版本字符串的需要.

你会发现this bug report很有用;它表明正确的用法是Database :: getConnection() – > databaseType().

(我从来没有使用Drupal,我只是搜索过这个).

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐