调用未定义函数 db_query

Call to undefined function db_query

我尝试配置一个可以从数据库获取数据的模块。我已经使用 db_query 来执行此操作,每次我 运行 模块我都会收到错误消息:

Call to undefined function db_query.

我已经搜索了几个月来找到这个问题的答案,我所能找到的只是我需要 bootstrap 页面。

define('DRUPAL_ROOT', $_SERVER['DOCUMENT_ROOT']. $SERVER["REDIRECT_COMMUNITY_SUBSITE"]);
// Bootstrap Drupal up through the database phase.
require_once (DRUPAL_ROOT. '/includes/bootstrap.inc');
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

不过我很确定我不需要在 .module 文件中执行此操作,但这似乎是唯一可行的方法。

你如何使用你的.module文件?

您可以按照本教程正确创建模块:

Creating modules - a tutorial: Drupal 7.x

如果您的 Drupal bootstrapped 正确,则可能是缓存故障。

尝试重新启动缓存,例如 memcached。

使用模块或 drush 时,您无需担心 bootstrapping Drupal,因为它应该自动完成。

使用 drush 命令,您可以调用任何 PHP 已经有 Drupal bootstrap 的代码,例如

drush ev "some_function();"
drush scr file.php

从外部代码手动bootstrap Drupal,你只需要:

define('DRUPAL_ROOT', getcwd());
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);

然后执行您需要的任何代码。