好的,所以我读到了drupal_write_record
,它显然是一个执行insert_or_update的函数。
然而,根据我的阅读,它不知道是否要进行插入或更新,但这是由第3个参数的存在(或不存在)确定的:$primary_keys
默认值到array()
。这是真的?我是否必须先选择记录,看是否存在,然后将第3个参数传递给drupal_write_record
?
我问这个,因为我通常做插入或更新功能的方法是根据主键进行选择,如果该行存在,那么我必须进行更新,如果没有,插入。这不是drupal_write_record
的工作方式吗?
顺便使用Drupal 7.0。
答案 0 :(得分:1)
根据文件:
$ primary_keys:要指示这是要插入的新记录,请省略此参数。如果这是更新,则此参数指定主键的字段名称。如果密钥中只有一个字段,则可以传入一个字符串;如果密钥中有多个字段,则传入一个数组。
来源:drupal_write_record API documentation
如果第三个参数 - $primary_keys
- 是一个包含主键字段名称的数组,那么它将尝试更新存在的记录。如果省略值$primary_keys
,它将默认为空数组,这意味着它将插入具有自己唯一ID的新记录。