当前位置:首页 > CMS教程 > 其它CMS > 列表

Drupal 7操作数据库常用sql(更新,删除,查询)

发布:smiling 来源: PHP粉丝网  添加日期:2014-12-05 13:54:05 浏览: 评论:0 

本文章总结了在Drupal 7中数据库的插入保存,删除记录,更新指定记录及合并记录等等代码片段了,希望本文章对你带来帮助.

Drupal 7 提供的新功能其中一个就是可以使用 Query Builder and Query Objects 查询生成器来构造查询对象的能力,无需在代码中写原始的SQL语句,一是提高了代码可阅读性,二是兼容所有数据库.

插入单条记录,代码如下:

  1. db_insert("table")->fields(array('field1' => 'value1''field2' => 'value2''fieldn' => $valuen))->execute();插入多条记录 
  2.  
  3. $values[] = array('field1' => 'val1''field2' => 'val2''fieldn' => $valn); 
  4. $values[] = array('field1' => 'value1’, 'field2' => 'value2', 'fieldn' => $valuen); 
  5. $query = db_insert(‘table’)->fields(array('field1''field2''fieldn')); 
  6. foreach ($values as $record) { 
  7.    $query->values($record); 
  8. $query->execute(); 

更新某条记录,代码如下:

  1. db_update('imports'
  2.    ->condition('name''Chico'
  3.    ->fields(array('address' => 'Go West St.')) 
  4.    ->execute(); 

等同于如下代码:

UPDATE {imports} SET address = 'Go West St.' WHERE name = 'Chico';

删除某条记录,代码如下:

  1. db_delete('imports'
  2.    ->condition('name' => 'Zeppo'
  3.    ->execute(); 

合并记录,代码如下:

  1. db_merge('people'
  2.   ->key(array('job' => 'Speaker')) 
  3.   ->insertFields(array('age' => 31,'name' => 'Meredith')) 
  4.   ->updateFields(array('name' => 'www.phpfensi.com')) 
  5.   ->execute(); 

如果存在job为Speaker的一条记录,则更新name为www.phpfensi.com,如果不存在,就插入一条age为31,name为Meredith,job为Speaker的记录.

对数据库某字段值自动加一或者自增,代码如下:

  1. db_update('example_table'
  2.   ->expression('count''count + 1'
  3.   ->condition('field1'$some_value
  4.   ->expression('field2''field2 + :inc'array(':inc' => 2)) 
  5.   ->execute(); 

查询数据库某字段为另一别名(alias),代码如下:

  1. $query = db_select('node''n'); 
  2. $query->addField('n''name''label'); 
  3. $query->addField('n''name''value');

Tags: Drupal7 Drupal7常用sql

分享到: