drupal_write_record不接受对象

时间:2012-07-06 20:40:34

标签: database arrays drupal object

在drupal 6中,我曾经做过类似的事情:

<?php
/*
 * CLASS Example
 */
class example {
  var $id = NULL;
  var $title;
  var $body;

  .....

  // Save
  function save() {
    $primary_key = ($this->id == NULL ? NULL : 'id');
    if (drupal_write_record('mytabble', $this, $primary_key)) {
      return TRUE; 
    } else {
      return FALSE;
    }
  }
}
?>

这很有效。但是在Drupal 7中,drupal_write_record只接受一个数组而不再是对象$ this。新的db_merge也只接受一个数组。 由于我想将对象的属性保存到数据库,因此上面的代码对于各种类都非常方便和通用。 是否有另一种方法可以将对象写入数据库,还是将对象属性放入数组中的方法?

任何帮助将不胜感激!

罗伯特

1 个答案:

答案 0 :(得分:1)

drupal_write_record确实采用对象或数组。猜猜你的问题是由其他地方引起的。

drupal_write_record($ table,&amp; $ record,$ primary_keys = array())

$ record:表示要写入的记录的对象或数组,通过引用传入。如果插入新记录,$ record中未提供的值将在$ record和数据库中填充模式中的默认值,以及单个序列(自动增量)字段(如果存在)。如果更新现有记录,则只在数据库中更新提供的值,并且不修改$ record。

有关drupal_write_record for D7的更多信息。