我有一个带有表events_times
的Drupal 7站点。我需要检查数据库中是否存在任何记录。如果他们这样做我想做更新而不是插入。我一直在修改代码,但无法使其正常工作。我收到以下错误:
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();
}
答案 0 :(得分:1)
Drupal的db_update()
和db_insert()
使用fields()
方法来定义您的值应该结束的位置。要支持多个插入对象,还要通过values()
方法接受值。
$query->fields(array(
'registration_times' => $values['registration_times'],
);