在Drupal中,db_select
是Database API的一部分,用于构建SQL查询。->condition()
方法是用于添加WHERE条件的主要方式。下面我将详细介绍如何使用这些功能。
Drupal的Database API提供了一种安全、可移植的方式来与数据库交互。db_select()
创建一个新的选择查询对象,而condition()
方法用于添加查询条件。
$query = db_select('table_name', 'alias')
->fields('alias', array('field1', 'field2'))
->condition('field_name', $value, 'operator');
$result = $query->execute();
$query = db_select('node', 'n')
->fields('n', array('nid', 'title'))
->condition('type', 'article', '=');
$articles = $query->execute();
// 大于
$query->condition('created', strtotime('-1 month'), '>');
// 不等于
$query->condition('status', 0, '<>');
// LIKE操作
$query->condition('title', '%Drupal%', 'LIKE');
$query = db_select('users', 'u')
->fields('u', array('uid', 'name'))
->condition('status', 1)
->condition('created', strtotime('-1 year'), '>')
->condition('name', '%admin%', 'LIKE');
$query = db_select('node', 'n')
->fields('n', array('nid', 'title'));
$or = db_or()
->condition('type', 'article')
->condition('type', 'page');
$query->condition($or);
$query = db_select('node', 'n')
->fields('n', array('nid', 'title'))
->condition('changed', 'created', '>');
$types = array('article', 'page', 'blog');
$query->condition('type', $types, 'IN');
$query = db_select('node', 'n')
->fields('n', array('nid', 'title'))
->condition('type', array('forum', 'poll'), 'NOT IN');
// 获取过去一个月内发布的所有已发布文章
$query = db_select('node', 'n')
->fields('n', array('nid', 'title', 'created'))
->condition('type', 'article')
->condition('status', 1)
->condition('created', strtotime('-1 month'), '>')
->orderBy('created', 'DESC')
->range(0, 10);
$results = $query->execute();
foreach ($results as $row) {
echo $row->title . ' (' . format_date($row->created) . ')<br>';
}
db_or()
和db_and()
db_select()
已被\Drupal::database()->select()
取代->range()
进行分页通过合理使用db_select
和condition
,您可以构建高效、安全的数据库查询,满足Drupal应用的各类数据检索需求。
没有搜到相关的文章