Drupal 7 db_update with foreach loop


Drupal 7 db_update with foreach loop

我有一个Drupal 7站点,它有一个表events_times。我需要检查数据库中是否存在任何记录。如果他们这样做了,我想做一个更新而不是插入。我一直在修改代码,但无法使其正常工作。我得到以下错误:

Fatal error: Call to undefined method UpdateQuery::values()

这是我的代码:

$times_values= array();
foreach ($form_state['values']['times_fieldset']['registration_times'] as   $time) {
$times_values[] = array('event_id' => $eventId,
'registration_times' => $time,
'max_attendees' => 0
);
}
//Check to see if values exist in the table already
$exists = db_select('events_times','et')
->fields('et')
->condition('event_id',$event->id,'=')
->execute()
->fetchAll();
if ($exists == FALSE) {
$query = db_insert('events_times')->fields(array('event_id', 'registration_times', 'max_attendees'));
foreach ($times_values as $record) {
$query->values($record);
}
$query->execute();
}
else {
 $query = db_update('events_times')->fields(array('event_id', 'registration_times', 'max_attendees'));
foreach ($times_values as $record) {
$query->values($record);
}
$query->execute();
}
Drupal的db_update()db_insert()使用fields()方法来定义值的结束位置。为了支持多次插入插入对象,还可以通过values()方法接受值。
$query->fields(array(
  'registration_times' => $values['registration_times'],
);