代码之家  ›  专栏  ›  技术社区  ›  Majid Fouladpour

Drupal中的数据库访问

  •  1
  • Majid Fouladpour  · 技术社区  · 14 年前

    我正在尝试自定义Drupal6.x模块。原始模块不调用数据库,但自定义版本需要从数据库中提取一些数据。查询应该通过Ajax调用进行。因此,我试图创建一个数据提供者来接收调用、查询数据库并返回结果(一些JSON)。

    对于数据提供程序,我需要一个到数据库的链接,但我不想在脚本中创建链接,而是希望找到存储DB连接值的脚本,并包含该文件。但我似乎找不到任何成功的文件。它位于一个典型的Drupal安装中的什么位置?

    另外,我不想把它变成Drupal模块,并遵循所有的约定来创建Hook(),…功能。我想直截了当地说,老一套。

    4 回复  |  直到 14 年前
        1
  •  0
  •   ceejayoz    14 年前

    数据库设置应位于 sites/default/settings.php .

        2
  •  7
  •   bkildow    14 年前

    如果您直接调用这个文件,一个简单的方法是引导Drupal。例如,您可以执行以下操作:

    <?php
    // Bootstrap Drupal
    require 'includes/bootstrap.inc';
    drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
    ?>
    

    这将允许您访问Drupal API的全部范围,包括 db_query() . 为了你的使用,你可能只想通过 DRUPAL_BOOTSTRAP_DATABASE 而不是 DRUPAL_BOOTSTRAP_FULL 进入之内 drupal_boostrap() . 见 http://api.drupal.org/api/function/drupal_bootstrap/6 供参考。

        3
  •  2
  •   Kevin    14 年前

    “另外,我不想把它变成Drupal模块,并遵循所有的约定来创建Hook(),……功能。我想直截了当地走过去。”

    为什么?这是最简单的方法,您仍然可以在那里定义外部数据库连接,并使用Drupal数据库层,您可以从您正在定制的模块中实现这一点。

    如果您没有使用外部数据库(不是Drupal),那么您可以只使用数据库API。

    http://api.drupal.org/api/group/database/6

    其他设置可以存储在settings.php中,但是由于您正在定制一个模块,所以我可以在模块中使用它,这样以后您就不必搜索它了。

        4
  •  0
  •   Eric M    14 年前

    您可以将第二个数据库添加到Drupal设置文件中,并在需要时来回切换。看这里: How to connect to multiple databases within Drupal