43 退化形式

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

<?php
$nid db_insert('node')
  ->fields(array('title''uid''created'))
  ->values(array(
    'title' => 'Example',
    'uid' => 1,
    'created' => REQUEST_TIME,
  ))
  ->execute();
?>

    这段代码和前面的代码相比,输出的结果完全相同,就是罗嗦了一点。

<?php
  ->fields(array('title''uid''created'))
?>

    当调用fields()时,使用的参数是一个索引数组而不是关联数组,此时它只设置了在查询中用到的字段(数据库列),而没有为它们设置值。这在插入多值的查询中非常有用,我们在后面会讲到这一点。

<?php
  ->values(array(
    'title' => 'Example',
    'uid' => 1,
    'created' => REQUEST_TIME,
  ))
?>

    这个方法指定一个关联数组,数组的结构就是左边的为要插入的字段名字,右边为对应的值。values()也可以使用索引数组。如果使用的是索引数组,那么值的顺序必须要与fields()方法中字段顺序保持一致。如果用的是关联数组,则数组内元素的顺序可以随意。一般情况下,为了代码的可读性,尽量选用关联数组的形式。

    由于大家大多数时候都使用紧凑形式,所以这种查询形式很少使用。只有当运行多值插入查询时,才会将fields()values()分开使用。


Drupal版本: