是否可以从.module文件中的另一个php文件中调用db_set_active()

时间:2015-02-26 15:04:23

标签: php drupal drupal-7 drupal-modules

我正在尝试与my_module.module文件中的其他php文件中的外部数据库进行交互,但是我收到此错误:

Call to undefined function db_set_active()

我试过了:

drupal_bootstrap(DRUPAL_BOOTSTRAP_DATABASE);
db_set_active('my_external_db');

但徒劳无功。

请帮助

编辑:

我的.php文件被称为jQuery.ajax,如下所示:

pathurl="sites/all/modules/MyModule/includes/treeviewPhpAPI.php";

1 个答案:

答案 0 :(得分:1)

如果您直接调用PHP脚本而不是通过Drupal引导(即:页面回调),则需要包含bootstrap.inc(就像cron.php正在做的那样)

if (!defined('DRUPAL_ROOT')) {
    define('DRUPAL_ROOT', dirname(__FILE__));
    chdir(DRUPAL_ROOT);
}

include_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_DATABASE);

db_set_active('my_external_db');