【问题标题】:Call to undefined function db_query调用未定义函数 db_​​query
【发布时间】:2015-03-27 11:51:43
【问题描述】:

我试图配置一个可以从数据库中获取数据的模块。我使用db_query 来执行此操作,每次运行模块时都会出现错误:

Call to undefined function db_query.

几个月来我一直在寻找这个问题的答案,我所能找到的只是我需要引导页面。

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 文件中执行此操作,但这似乎是唯一有效的方法。

【问题讨论】:

    标签: php database drupal-7


    【解决方案1】:

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

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

    Creating modules - a tutorial: Drupal 7.x

    【讨论】:

    • 谢谢@T-34,与 Buildamodule.com 一起,是我用来帮助我创建这个模块的指南。我知道在那个教程中他们使用 db_select 而我使用的是 db_query 但这不应该有所作为吗?另外,你是什么意思“你如何使用你的 .module 文件?”我尝试将所有内容分成不同的 .inc 文件,但没有奏效,所以现在所有内容都在 .module 文件中
    【解决方案2】:

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

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

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

    使用drush 命令,您可以调用任何带有 Drupal 引导程序的 PHP 代码,例如

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

    要从外部代码手动引导 Drupal,您只需要:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-29
      相关资源
      最近更新 更多