2

当我在 drupal 中创建基本页面时,我选择了PHP 代码的文本格式。现在我可以在这里编写 PHP 代码了。

我想列出 MySQL 中的记录,如何在此处包含数据库连接?

这是在内容中编写 PHP 代码的好方法吗?

4

2 回答 2

2

您可以直接调用drupal api函数,而无需在页面中db_query()添加任何函数。dbconection不建议在页面内添加 php 代码,尝试为此创建自己的模块或使用视图

于 2012-12-04T10:17:05.263 回答
0

第一:您不应该使用 PHP 输入格式。它的存在在 Drupal 中引起了激烈的争论,许多人倾向于完全删除它。这既是安全的噩梦,也是维护的恐怖。

也就是说,您正在寻找的 PHP 是:

<?php
// Create an object of type SelectQuery
$query = db_select('users', 'u');

// Add extra detail to this query object: a condition, fields and a range
$query->condition('u.uid', 0, '<>');
$query->fields('u', array('uid', 'name', 'status', 'created', 'access'));
$query->range(0, 50);
?>

有关动态查询的更多信息,请参见 Drupal.org。不需要设置你的数据库,Drupal 已经处理好了。

如果您希望您的代码连接到与主 Drupal 数据库不同的数据库,您可以将该数据库添加到您的 settings.php:

$databases['gallery']['gallery'] = array(
  'driver' => 'mysql',
  'database' => 'gallery',
  'username' => 'username',
  'password' => 'secret',
  'host' => 'localhost',
);

这引入了一个使用数据库“gallery”的称为“gallery”的新数据库资源。当您想要使用来自另一个数据库的资源时很有用,例如来自“图库应用程序”的记录。

$options然后,您可以使用-parameter中的键查询该数据库,如下所示:

<?php
// Create an object of type SelectQuery
$query = db_select('pictures', 'p', array('target' => 'gallery'));

// Add extra detail to this query object: a condition, fields and a range
$query->condition('p.status', 'published', '=');
$query->fields('p', array('path', 'title', 'date'));
$query->range(0, 50);
?>
于 2012-12-06T13:57:51.693 回答