A-A+

Drupal7中常用的数据库操作实例

2020年10月07日 我爱编程 暂无评论

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

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

  1. db_insert("table")->fields(array('field1' => 'value1''field2' => 'value2''fieldn' => $valuen))->execute();

2.插入多条记录 ,代码如下:

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

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

  1. db_update('imports')
  2.    ->condition('name''Chico')
  3.    ->fields(array('address' => 'Go West St.'))
  4.    ->execute();
  5. //等同于:
  6. UPDATE {imports} SET address = 'Go West St.' WHERE name = 'Chico';

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

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

5.合并记录,代码如下:

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

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

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

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

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

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

给我留言

Copyright © 四季博客 保留所有权利.   Theme  Ality

用户登录