drupal7 数据库操作,查询

 

database API:https://drupal.org/node/310069

文章来源:http://www.cuitu.net/book/di-wu-zhang-shu-ju-ku-cao-zuo

 

测试文件:

<?php
define('DRUPAL_ROOT', getcwd());
require_once DRUPAL_ROOT . '/includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_DATABASE);
//单值
$nbr_records = db_query("SELECT count(`nid`) FROM `node`")->fetchField();
print_r($nbr_records);
echo "<br>";
//多值
$type = 'page';
$status = 1;
$result = db_query("SELECT nid, title FROM {node} WHERE type = :type AND status = :status", array(
  ':type' => $type, ':status' => 1,
));
foreach ($result as $row) {
   echo $row->title."<br/>";
}


//获取指定范围的记录
$query = db_select('node', 'n');
$query
  ->condition('type', 'page')
  ->fields('n', array('title'))
  ->range(0,100);
 
$result = $query->execute();
foreach($result as $row) {
    echo $row->title."<br/>";
}

 

//其他

第一个例子是结果集进行排序。使用OrderBy方法,您可以对结果集进行排序。例如结果按 title 字段升序排序。
 

$query 
  ->condition('type', 'page') 
  ->fields('n', array('title')) 
  ->orderBy('title', 'ASC'); 

下一个例子是先按节点修改日期(changed)降序排序,然后按标题(title)升序排序。

$query 
  ->condition('type', 'page') 
  ->fields('n', array('title', 'changed')) 
  ->orderBy('changed', 'DESC') 
  ->orderBy('title', 'ASC');

有的查询可能有重复的记录。在这种情况下,可以使用 distinct 方法将重复的记录过滤掉。

$query 
  ->condition('type', 'page') 
  ->fields('n', array('title', 'changed')) 
  ->orderBy('changed', 'DESC') 
  ->orderBy('title', 'ASC') 
  ->distinct()

你可能感兴趣的:(drupal)