Drupal中的数据库访问

时间:2010-06-15 19:35:21

标签: drupal

我正在尝试自定义Drupal 6.x模块。原始模块不会对数据库进行任何调用,但自定义版本需要从数据库中提取一些数据。查询应该通过AJAX调用进行。所以我试图让数据提供者接收调用,查询数据库,并返回结果(一些json)。

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

P.S。我不想将它变成Drupal模块并遵循所有约定来创建_hook(),...函数。我想直接和老派。

4 个答案:

答案 0 :(得分:7)

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

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

这将允许您访问包括db_query()在内的所有drupal API。为了您的使用,您可能只想将DRUPAL_BOOTSTRAP_DATABASE代替DRUPAL_BOOTSTRAP_FULL传递到drupal_boostrap()。请参阅http://api.drupal.org/api/function/drupal_bootstrap/6以供参考。

答案 1 :(得分:2)

“P.S。我不想把它变成Drupal模块并遵循所有约定来创建_hook(),...函数。我想让它直接和老派。”

为什么呢?这是最简单的方法,您仍然可以在那里定义外部数据库连接并利用Drupal数据库层,您可以在自定义的模块中执行此操作。

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

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

其他设置可以存储在settings.php中,但由于您要自定义模块,我会在模块中使用它,这样您就不必在以后搜索它。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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