2013-10-03 161 views
0

在Drupal 7的自定义模块,我使用的是形式更新数据库中的记录,我用下面的代码更新,但由于某些原因,它没有更新,谁能告诉我为什么?我试图像3小时改变一切可能的事情,但没有运气Drupal 7的更新查询不工作

功能edit_job_form_submit($形式,& $ form_state){

$id = $form_state['values']['id']; 
    $job_title = $form_state['values']['job_title']; 
    $description = $form_state['values']['description']; 
    $cat_id = $form_state['values']['cat_id']; 
    $job_type = $form_state['values']['job_type']; 
    $company_id = $form_state['values']['company_id']; 
    $description = $form_state['values']['description']; 
    $location = $form_state['values']['location']; 
    $Salary = $form_state['values']['Salary']; 
    $benifits = $form_state['values']['benifits']; 
    $Nationality = $form_state['values']['Nationality']; 
    $Age = $form_state['values']['Age']; 
    $join_date = $form_state['values']['join_date']; 
    $date_added = date("y-m-d", time()); 
    $join_date_mod = gmdate('Y-m-d',strtotime($join_date)); 

    $num_updated = db_update('echelon_jobs') 
    ->fields(array(
    'job_title' => $job_title, 
    'cat_id' => $cat_id, 
    'job_type' => $job_type, 
    'company_id' => $company_id, 
    'location' => $location, 
    'Salary' => $Salary, 
    'benifits' => $benifits, 
    'Nationality' => $Nationality, 
    'Age' => $Age, 
    'join_date' => $join_date_mod, 
    'date_added' => $date_added, 
     )) 
    ->condition('id', $id) 
    ->execute(); 

    //dpq($num_updated, $name); 
    drupal_set_message(t('Vacancy Updated Successfully.. ')); 

}

+0

仅仅是明确的 - 提交函数被调用,对不对?您正在获得“空缺更新成功”的消息,您只是没有看到数据库中的更改? 你已经检查了drupal和php日志,并且没有错误 - 可能与你的数据和db模式不匹配? – Andrew

回答

2

可能是你的条件是不正确的。可能是你的变量id有空值或表中不存在的某个值。

1
  1. 检查什么db_update()返回在Drupal/MySQL的记录
  2. 反过来错误报告,并检查是否有任何错误