如何使用Drupal发布驻留在外部数据库中的数据?

时间:2011-05-07 02:59:46

标签: php drupal drupal-views drupal-7

我对Drupal很新,并且获得了一些关于视图的混合信息,所以我想知道是否有人可以让我走上正确的道路。

这是我的情况。我有一个单独的数据库(在同一个Drupal数据库服务器上),它有很多由另一个团队维护的数据。我们希望将这些数据发布到网络上,并在获得一些建议后,看起来像是Drupal视图。

问题是,我不确定从那里去哪里。我阅读了文档,只是在Lullabot上观看了视图教程,但我的数据根本不在字段列中。

我读了一篇文档说我必须“描述”我的外部数据库给Drupal,但不知道该怎么做。我在drupal.org(服务等等)上找到了一些工具,他们说他们可以分析我的数据库并将结构报告给Drupal,但我无法弄明白。

基本上我想要的最终结果是两件事。首先是简单地将数据从我的外部数据库显示到Drupal节点上(唯一的问题是,每个页面都特定于数据库实体,因此尽管数据格式/显示是标准的,但数据本身将随链接而变化,例如,www.example.com / ibm应该只提供我们关于ibm的数据,并且随着公司名称的变化,所显示的数据也会发生变化)以后我可能希望在数据显示之前对数据进行一些计算。

任何人对如何执行此操作或任何教程有任何建议?

如果有帮助,我正在使用Drupal 7。

另一方面,如果在Drupal中无法做到这一点,或者即使它是,那么在PHP中创建它然后以某种方式将它包装在Drupal中会更好吗?我正在讨论这个因为我认为我知道如何在PHP中做到这一点它可能会让我对结果有更多的控制(但我有点懒,因为我想也许Drupal可以为我做这些:-)

更新:好的,现在我更加困惑了。我查看了视图,但仍无法将其与我的数据库集成。我已经查看了模式,并将feed作为描述数据库或使用Drupal进行复制的方式。我不确定我是否正朝着正确的方向(或正确的方向),因为到目前为止,我所尝试的一切似乎都是死路一条。有人可以推荐一个教程吗?或者谈谈他们完成这项工作的经历?我只是想将另一个数据库中的内容显示在页面上(当用户选择特定的股票代码时),我可能希望以后允许用户进行自定义(这就是我认为需要查看的原因)。

2 个答案:

答案 0 :(得分:6)

就连接数据库而言,在settings.php中,您可以添加其他数据库连接,并在代码中使用db_set_active('connection_name')函数将活动数据库连接切换到该源。为视图构建插件 - 这是一个远远超出单个答案范围的重要主题。我只能说谷歌和好运,并回来具体细节:)

答案 1 :(得分:1)

模块Forena可用于查询(不更新)各种数据库(如MySQL数据库),以及建立与外部数据库的数据库连接。它带有各种钩子,可以在另一个模块中使用Forena。

有关Forena的更多详细信息,可提供以下两种文档:

  • Community documentation
  • Forena附带的文档,您可以在安装和启用模块后立即访问它。查看demo site以获取当前的在线示例:

    • Forena文档 - 使用“报告文档”链接或访问相关链接/报告/帮助。
    • Forena样本 - 使用“报告样本”链接或访问相关链接/报告/样本(这些样本功能齐全,因此请务必进行一些实验,例如钻取可在SVG Graph样本上获得。

最新的7.x-4.x版本还包括一个令人惊叹的(我认为)UI,用于创建报告(WYSIWYG报告编辑器)和/或创建SQL查询(查询生成器)。

以下是 mysql数据库部分的一些变体:

  1. 使用 SQLite 代替MySQL数据库:Forena样本实际上已经发货,包括一个(Tiny)SQLite数据库。请在demo site中查看:显示的数据包含在sampledb中的数据,该数据采用SQLite格式。
  2. Forena附带一整套Supported database connections ...例如MS SQL,Oracle,Postgress或任何符合PDO的变体。
  3. 考虑给Forena一个尝试的充分理由?在这样做时,请将它的问题队列用于您可能拥有的任何类型的支持/文档​​请求。

    请注意:我是Forena的共同维护者。