使用drupal_write_record执行insert_or_update

时间:2012-06-12 15:45:14

标签: php drupal drupal-schema

好的,所以我读到了drupal_write_record,它显然是一个执行insert_or_update的函数。

然而,根据我的阅读,它不知道是否要进行插入或更新,但这是由第3个参数的存在(或不存在)确定的:$primary_keys默认值到array()。这是真的?我是否必须先选择记录,看是否存在,然后将第3个参数传递给drupal_write_record

我问这个,因为我通常做插入或更新功能的方法是根据主键进行选择,如果该行存在,那么我必须进行更新,如果没有,插入。这不是drupal_write_record的工作方式吗?

顺便使用Drupal 7.0。

1 个答案:

答案 0 :(得分:1)

根据文件:

  

$ primary_keys:要指示这是要插入的新记录,请省略此参数。如果这是更新,则此参数指定主键的字段名称。如果密钥中只有一个字段,则可以传入一个字符串;如果密钥中有多个字段,则传入一个数组。

来源:drupal_write_record API documentation

如果第三个参数 - $primary_keys - 是一个包含主键字段名称的数组,那么它将尝试更新存在的记录。如果省略值$primary_keys,它将默认为空数组,这意味着它将插入具有自己唯一ID的新记录。