21 关联
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
为了关联另一个数据库表,我们可以使用方法join()、innerJoin()、leftJoin()、或rightJoin(),下面的代码是一个具体示例:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
为了关联另一个数据库表,我们可以使用方法join()、innerJoin()、leftJoin()、或rightJoin(),下面的代码是一个具体示例:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
下面是一个有关users表的相对简单的查询。接下来我们会分析这个查询中的每个构成部分,以及会学习一些高级技巧比如表之间的关联。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
1. 概貌
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
动态查询指的是由Drupal动态的构建查询,而不是直接提供一个查询字符串。所有的插入、更新、删除、和合并查询都应该是动态的。选择查询可以是静态的,也可以是动态的。因此,一般动态查询指的就是动态的选择查询。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
也可以把查询的结果存放在自定义类的对象中去。例如,如果我们有一个名为ExampleClass的类,下面的查询则会返回类型为exampleClass的对象。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
选择查询总是返回一个结果集对象,它包含零个或多个记录。根据具体情况的不同,有多种方式可以用来从结果集中获取数据。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
db_query()的第3个参数,也就是连接对象query方法的第3个参数,是一个选项数组,用来指示查询应该如何执行。对于大多数的查询来说,常用的指令只有两个。其它值则大多数时候在内部使用。
"target"键用来指定所要使用的目标数据库。如果没有指定,则使用默认的"default"。在下面的例子中,有效值只有一个"slave",这表示如果存在一个从数据库,查询则运行在它的上面。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
Drupal的数据库层,包含了有关占位符的一个附加特性。对于一个占位符,如果传递给它的值是一个数组,它就会自动地将占位符扩展为逗号分隔的占位符列表,分别对应于数组中的元素。这意味着开发者不需要考虑他们需要多少个占位符。
我们通过实例来学习一下这一特性: