我正在尝试自定义Drupal 6.x模块。原始模块不会对数据库进行任何调用,但自定义版本需要从数据库中提取一些数据。查询应该通过AJAX调用进行。所以我试图让数据提供者接收调用,查询数据库,并返回结果(一些json)。
对于数据提供者,我需要一个指向数据库的链接,但我不想在脚本中创建链接,而是希望找到存储db连接值的脚本并包含该文件。但我似乎没有找到该文件的任何成功。它位于典型的Drupal安装位置?
P.S。我不想将它变成Drupal模块并遵循所有约定来创建_hook(),...函数。我想直接和老派。
答案 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