1

在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 也只需要一个数组。因为我想将我的对象的属性保存到数据库中,所以上面的代码对于各种类都非常方便和通用。是否有将对象写入数据库的替代方法,或将对象属性放入数组的方法?

任何帮助将不胜感激!

罗伯特

4

1 回答 1

1

drupal_write_record 确实需要一个对象或一个数组。猜猜你的问题是由其他地方引起的。

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

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

有关D7 的 drupal_write_record 的更多信息。

于 2012-07-07T06:53:32.597 回答