17 存到类中
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
也可以把查询的结果存放在自定义类的对象中去。例如,如果我们有一个名为ExampleClass的类,下面的查询则会返回类型为exampleClass的对象。
作者:老葛,北京亚艾元软件有限责任公司,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的数据库层,包含了有关占位符的一个附加特性。对于一个占位符,如果传递给它的值是一个数组,它就会自动地将占位符扩展为逗号分隔的占位符列表,分别对应于数组中的元素。这意味着开发者不需要考虑他们需要多少个占位符。
我们通过实例来学习一下这一特性:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
占位符表示为了执行查询,将会向该位置插入对应的文字。通过将其从查询本身中分离出来,我们允许数据库区分SQL语法与用户输入值,因此可以避免SQL注入。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
在静态查询中,所有的数据库表名都必须使用{}包装。这样,当你的Drupal安装使用了数据库前缀时,数据库系统就可以在表名前面添加一个前缀字符串。通过前缀化,就可以实现在同一个数据库上运行多个站点,或者在特定的情况下,可以实现多个站点之间的表共享。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
Drupal中最常见的查询方式就是静态查询。静态查询通常会被一字不差的传递给数据库。通常只有选择查询才可以是静态的。
对于特别简单的查询,通常应该适用静态查询机制。对于更加复杂的查询,比如动态生成的查询或者其它类似查询,则应该使用动态查询。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
由于Drupal的数据库层依赖于PHP的PDO库,所以你在选用主机时,确保你的PHP是支持PDO的。