我们已经讲了很多有关数据库API函数的链式调用了,例如:
<?php
$result = db_select('mytable')
->fields('mytable')
->condition('myfield', 'myvalue')
->execute();
?>
然后,并不是所有的函数都可以采用这种链式结构调用,有些函数不能采用链式调用,否则就会导致你的代码不能正常工作。
对于不能使用链式形式的函数,只能按照下面的方式调用:
<?php
$query = db_select('mytable');
$query->addField('mytable', 'myfield', 'myalias');
$query->addField('mytable', 'anotherfield', 'anotheralias');
$result = $query->condition('myfield', 'myvalue')
->execute();
?>
如果一个函数是链式的,那么它的返回值,必须是查询对象本身。为了查看任意数据库API函数的返回值,可以参看http://api.drupal.org。
在这个页面,我们列出了一些常用的链式函数,和一些非链式函数,方便大家快速查看,不过这里面并没有涵盖所有的函数。如果你觉得哪个函数比较常用,也可以将其添加进来。
注意:如果一个函数不是链式的,这只意味着你不可以在它的后面链接更多的函数,但是你仍然可以在它前面使用链式函数。
下面是链式函数:
· fields()
· where()
· isNull()
· having()
· union()
· exists()
· range()
· addTag()
下面是非链式函数:
· join()
· extend()