如何访问Drupal 7$数据库变量?

如何访问Drupal 7$数据库变量?,drupal,drupal-7,Drupal,Drupal 7,我在node.tpl.php和page.tpl.php中编写了一些php/mysql查询 <?php include("sites/default/settings.php") ?> 这些页面用于连接MySQL的用户名和密码在文件中指定 我不想这样做,而是希望能够使用Drupal的settings.php文件中定义的MySQL连接设置 我正在尝试,但没有成功地将settings.php文件包含到node.tpl.php和page.tpl.php中 <?php include

我在node.tpl.php和page.tpl.php中编写了一些php/mysql查询

<?php include("sites/default/settings.php") ?> 
这些页面用于连接MySQL的用户名和密码在文件中指定

我不想这样做,而是希望能够使用Drupal的settings.php文件中定义的MySQL连接设置

我正在尝试,但没有成功地将settings.php文件包含到node.tpl.php和page.tpl.php中

<?php include("sites/default/settings.php") ?> 
$databases数组具有以下结构:

$databases = array (
                   'default' => 
                        array (
                          'default' => 
                               array (
                                    'database' => 'sdnndr',
                                    'username' => 'root',
                                    'password' => '',
                                    'host' => 'localhost',
                                    'port' => '',
                                    'driver' => 'mysql',
                                    'prefix' => '',
                                ),
                        ),
              );

我的方法行不通。有人能提出建议吗?让我数一数你做错这件事的方式。您不能将查询写入模板。从不因为如果你以后再改变外表,你就会失去逻辑。将它们放在它们所属的模块中。您不需要包括设置,它已经包括在内。您不编写MySQL查询是因为它们不安全,而是使用它来鼓励(在某些情况下甚至强制)安全性。

让我看看您的错误做法。您不能将查询写入模板。从不因为如果你以后再改变外表,你就会失去逻辑。将它们放在它们所属的模块中。您不需要包括设置,它已经包括在内。您编写MySQL查询不是因为它们不安全,而是使用了鼓励(在某些情况下甚至强制)安全性的方法。

以及chx所说的方法


让我数一数你做错这件事的方式。您不能将查询写入模板。从不您不包括设置,它已经包括在内。您不需要编写您使用的MySQL查询

在主题的template.php文件中,您可以访问page.tpl.php的大部分变量。使用

hook_preprocess(&$variables, $hook);
然后转储或dsm($variables);(必须安装devel模块)


如果确实需要查询数据库,请创建一个小模块,并在.module文件中使用drupal函数查询数据库。此外,您不必担心连接到数据库,这是在引导过程中完成的。

以及chx所说的


让我数一数你做错这件事的方式。您不能将查询写入模板。从不您不包括设置,它已经包括在内。您不需要编写您使用的MySQL查询

在主题的template.php文件中,您可以访问page.tpl.php的大部分变量。使用

hook_preprocess(&$variables, $hook);
然后转储或dsm($variables);(必须安装devel模块)


如果确实需要查询数据库,请创建一个小模块,并在.module文件中使用drupal函数查询数据库。此外,您不必担心连接到数据库的问题,这是在引导过程中完成的。

如果您真的建议做什么,而不仅仅是批评,这可能会很有用。但是,是的,所有这些都是正确的。鉴于没有实际问题需要解决,除了指出Drupal的数据库API之外,我怎么能建议一个更合适的解决方案呢?你没有解释为什么它不好,也没有给出改为做什么的指示。没有什么比找到一个适用于您的用例的问题更令人沮丧的了,但是答案几乎没有给出任何澄清。给出一个链接是很好的,但是对于一个没有什么经验的人来说(尤其是考虑到它的Drupal),这几乎是无用的。当然,我可以看出,你可能不想花费不必要的时间对你的答案进行深入的解释,但仅仅一点指导可能非常有助于指出一些正确的方向。如果你真的建议做什么,而不仅仅是批评,这可能会很有用。但是,是的,所有这些都是正确的。鉴于没有实际问题需要解决,除了指出Drupal的数据库API之外,我怎么能建议一个更合适的解决方案呢?你没有解释为什么它不好,也没有给出改为做什么的指示。没有什么比找到一个适用于您的用例的问题更令人沮丧的了,但是答案几乎没有给出任何澄清。给出一个链接是很好的,但是对于一个没有什么经验的人来说(尤其是考虑到它的Drupal),这几乎是无用的。当然,我可以看出,您可能不想花不必要的时间对您的答案进行深入的解释,但仅仅一点指导可能会非常有助于为一些人指明正确的方向。