麻烦在drupal 7中将日期表单插入mysql

时间:2012-04-24 08:27:30

标签: mysql drupal drupal-7

嗨我很容易将日期从drupal插入mysql 这里是我正在尝试的代码

.....
$form['kotak']['tgl'] = array(
'#type' => 'date',
'#title' => t('Tanggal'),
);
.....
function awal_form_submit($form,&$form_state){
global $user;
$entry = array(
 'tanggal'  => $form_state['values']['tgl'],
);
$tabel = 'jp_1';
$return = insert_form($entry,$tabel);
}
.....
function insert_form($entry,$tabel){
$return_value = NULL;
try {
 $return_value = db_insert($tabel)
                ->fields($entry)
                ->execute();    
}
.....

每次我提交,错误代码都是这样的

  

db_insert失败。 Message = SQLSTATE [21S01]:插入值列表与列列表不匹配:1136列计数与第1行的值计数不匹配,query = INSERT INTO {jp_1}(tanggal)VALUES(:db_insert_placeholder_0_month,:db_insert_placeholder_0_day,:db_insert_placeholder_0_year)

任何建议或更正?

2 个答案:

答案 0 :(得分:0)

从mysql错误看起来你创建的表有必需的字段(列Null属性设置为0,这意味着你要插入的每一行都必须有tha列的值)

检查是否有任何将null设置为0的列。

从您的示例中我看不到您要实现的目标,但在许多情况下,没有必要手动写入db表(使用db_insert()),因为通过创建内容可以更轻松地获得相同的结果type(节点类型),它为您处理许多功能。 我希望有所帮助,马丁

答案 1 :(得分:0)

我终于设法找到了答案,我只需要下载“日期”模块并激活其“日期API”。这里是代码

.....
$datex = '2005-1-1';
$format = 'Y-m-d';
$form['kotak']['tgl'] = array(
'#type' => 'date_select',
'#default_value' => $datex,
'#date_format' => $format,
'#date_year_range' => '-10:+30', 
'#title' => t('Tanggal'),
);
.....
function awal_form_submit($form,&$form_state){
global $user;
$entry = array(
 'tanggal'  => $form_state['values']['tgl'],
);
$tabel = 'jp_1';
$return = insert_form($entry,$tabel);
}
.....
function insert_form($entry,$tabel){
$return_value = NULL;
try {
 $return_value = db_insert($tabel)
                ->fields($entry)
                ->execute();    
}
.....

现在我没有问题交付给mysql。 希望能帮助像我这样的其他drupal新手开发者。谢谢:D