我试图将复选框值添加到SQL数据库中但得到此错误消息:
PDOException:SQLSTATE [21S01]:插入值列表与列列表不匹配:1136列数与第1行的值计数不匹配:INSERT INTO {1test}(personnummer,arende,kampanj)VALUES(:db_insert_placeholder_0,: db_insert_placeholder_1,:db_insert_placeholder_2_ett,:db_insert_placeholder_2_tva,:db_insert_placeholder_2_tre);在my_module_my_form_submit()中的数组([:db_insert_placeholder_0] => 8007289690 [:db_insert_placeholder_1] => saldo [:db_insert_placeholder_2_ett] => ett [:db_insert_placeholder_2_tva] => 0 [:db_insert_placeholder_2_tre] => 0) C:\ acquia-drupal-sites \ sql \ sites \ all \ modules \ 1-custom \ my_module \ my_module.module)。
我的Form_Module:
$form['kampanj'] = array(
'#default_value' => array(
),
'#required' => '0',
'#key_type_toggled' => '0',
'#weight' => '2',
'#type' => 'checkboxes',
'#options' => array(
'ett' => t('ett'),
'tva' => t('två'),
'tre' => t('tre'),
),
'#title' => t('Kampanj'),
);
function my_module_my_form_submit($form, &$form_state) {
$personnummer = db_insert('1test')
->fields(array(
'kampanj' => $form_state['values']['kampanj']
))
->execute();
drupal_set_message(t('Registrerat.'));
}
答案 0 :(得分:0)
如果您的表有4列,那么您需要在字段函数数组中发送4个值。你只是发送它1.因此错误:
列数与第1行的值计数不匹配
我认为在发送到fields函数的数组中,你需要有4个值,数组键对应于table列。发送Null为id
例如
->fields(array(
'id' => null,
'id-number' => 'something',
'items' => 'something,
'kampanj' => $form_state['values']['kampanj'],
))
此外,'kampanj'的值实际上是数据库预期的文本吗?