-2

我不想使用drupal db_规则。我宁愿使用我自己的pdo技术进行数据库查询和更新等。但是我设法让pdo工作,唯一的问题是我有要在每个自定义页面上使用连接,我社区中的一些用户可以编辑页面并且能够看到连接信息.. require 和 require_once 似乎不起作用。

有没有其他人遇到过这个问题并且知道如何避免它?

4

2 回答 2

1

您可以创建自己的模块并使用 init 挂钩:

https://api.drupal.org/api/drupal/modules%21system%21system.api.php/function/hook_init/7

function yourmodulename_init() {
  // This code will be executed on every page
}

但是,您应该尝试使用 drupal 数据库机制,因为它带有许多最佳实践和强大的工具。例如视图集成:

https://api.drupal.org/api/views/views.api.php/function/hook_views_data/7

于 2013-09-18T12:56:20.373 回答
0

在 Drupal 7 中,Database::getConnection允许您检索DatabaseConnection所有已配置数据库的对象。并且DatabaseConnection扩展PDO所以如果你真的想绕过 Drupal 的数据库 API(它本身基于 PDO 并且可以在所有地方重用或扩展 PDO 类),你可以像使用你自己的PDO对象一样使用它。

但是,如果您的社区用户能够编辑您的自定义页面,我猜您实际上是在使用 PHP 过滤器将 PHP 代码嵌入 Drupal 节点中。这本身就是一个非常糟糕的主意(比忽略 Drupal 的数据库 API 更糟糕)。相反,您应该考虑编写适合您需求的自定义模块。

于 2013-09-19T14:22:17.927 回答