当我在drupal中创建基本页面时,我选择文本格式到 PHP代码。现在我可以在这里编写PHP代码。
我想列出MySQL的记录,如何在这里包含数据库连接?
在内容中编写PHP代码是否很好?
答案 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);
?>