Drupal 7 - 如何从页面中的mysql中选择记录?

时间:2012-12-04 10:13:38

标签: php mysql drupal drupal-7

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

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

在内容中编写PHP代码是否很好?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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);
?>

有关dynamic queries的更多信息,请访问Drupal.org。无需设置数据库,Drupal已经处理过了。

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

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

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

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

<?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);
?>