44 多值插入形式
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
插入查询对象上还可以使用多值集合。也就是说,values()可被调用多次,从而将多个插入语句排在一起调用。这种形式的具体执行情况,则取决于数据库自身的能力。对于大多数的数据库,多值插入语句都会放在一个事务中一起执行,这样能够保证更好的数据一致性和执行效率。对于MySQL,它将会使用MySQL的多值插入语法。
内容包括drupal7教程,drupal7汉化,drupal7主题,drupal7模板,drupal7中文手册,drupal7 views,drupal7中文,drupal7安装,drupal7开发,drupal7视频,等
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
插入查询对象上还可以使用多值集合。也就是说,values()可被调用多次,从而将多个插入语句排在一起调用。这种形式的具体执行情况,则取决于数据库自身的能力。对于大多数的数据库,多值插入语句都会放在一个事务中一起执行,这样能够保证更好的数据一致性和执行效率。对于MySQL,它将会使用MySQL的多值插入语法。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
$nid = db_insert('node')
->fields(array('title', 'uid', 'created'))
->values(array(
'title' => 'Example',
'uid' => 1,
'created' => REQUEST_TIME,
))
->execute();
?>
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
对于大多数插入查询,推荐的形式就是紧凑形式:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
插入查询必须使用一个查询构建器对象。对于LOB (大对象, 比如MySQL中的TEXT) 和BLOB(二进制大对象)字段,某些数据库需要特殊处理,所以我们需要一个抽象层,从而允许独立的数据库驱动,按照它们自己的要求实现自己的特殊处理。
插入查询使用db_insert()函数作为开始,如下所示:
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
标签化和元数据本身并不起任何作用。它们的存在就是为hook_query_alter()提供信息,在hook_query_alter()中,可对选择查询作任何修改。
所有的动态选择对象都是通过execute()方法,在查询字符串被编译之前,传递给hook_query_alter()的。这就为模块提供了一个机会,方便它们按照自己的需要来操作查询。hook_query_alter()接收单个参数:选择查询对象本身。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
还可以为查询添加一些元数据,从而为alter钩子提供附加的上下文信息。元数据可以是任意的PHP变量,也可以用一个字符串作为键。
作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
动态选择查询的一个重要特性,就是其它模块能够修改它们。这就允许了其它模块把它们自己的限制注入到查询中,这可以是修改一个模块的行为,也可以是在查询运行时应用限制条件,比如节点访问限制。查询变更包含三个组成部分:tagging(标签化)、元数据(meta data)和hook_query_alter()。