在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也只接受一个数组。 由于我想将对象的属性保存到数据库,因此上面的代码对于各种类都非常方便和通用。 是否有另一种方法可以将对象写入数据库,还是将对象属性放入数组中的方法?
任何帮助将不胜感激!
罗伯特
答案 0 :(得分:1)
drupal_write_record确实采用对象或数组。猜猜你的问题是由其他地方引起的。
drupal_write_record($ table,&amp; $ record,$ primary_keys = array())
$ record:表示要写入的记录的对象或数组,通过引用传入。如果插入新记录,$ record中未提供的值将在$ record和数据库中填充模式中的默认值,以及单个序列(自动增量)字段(如果存在)。如果更新现有记录,则只在数据库中更新提供的值,并且不修改$ record。
有关drupal_write_record for D7的更多信息。