嗨我很容易将日期从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)
任何建议或更正?
答案 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