2012-04-24 111 views
0

喜IM到mysql 这里,我试图麻烦插入日期的形式在Drupal的MySQL从Drupal的插入日期有一点小麻烦7个

..... 
$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失败。消息= 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

坦率地说,我从来没有用过drupal,我正在根据你的mysql错误进行调用。月/日/年的值应该连成一个。现在他们作为三个单独的变量传递,他们必须合并成一个单一的变量。 – 2012-04-24 09:59:14

回答

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

0

从MySQL错误,它看起来像表创建具有所需的字段(一列空属性设置为0,这意味着必须为要插入每一行THA列的值)

检查是否有任何空列设置为0.

从你的例子我看不到你想要实现什么,但在很多情况下没有必要手动写入数据库表(使用db_insert ()),因为您可以通过创建一个为您处理大量功能的内容类型(节点类型)来获得相同的结果。 我希望帮助,马丁

+0

我为自己的项目制作了一个定制的drupal插件。这是我的代码片,我仍然遇到麻烦。 我认为Jermin Bazazian是正确的,drupal将我的日期查询作为3个独立变量而不是单个变量传递给我,这就是我分析后的问题 – Altic 2012-04-26 07:56:47