作者:老葛,北京亚艾元软件有限责任公司,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()分开使用。