【问题标题】:Trouble insert date form to mysql in drupal 7麻烦在drupal 7中将日期表单插入mysql
【发布时间】:2012-04-24 08:27:30
【问题描述】:

嗨,我在将日期从 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 失败。消息 = SQLSTATE [21S01]:插入值列表与列列表不匹配:1136 列计数与第 1 行的值计数不匹配,查询 = INSERT INTO {jp_1}(tanggal)值(:db_insert_placeholder_0_month,:db_insert_placeholder_0_day,:db_insert_placeholder_0_year)

有什么建议或更正吗?

【问题讨论】:

  • 坦率地说我以前从未使用过drupal,我是根据你的mysql错误来打电话的。月/日/年的值应连接为一个。现在它们作为三个单独的变量传递,它们必须组合成一个变量。

标签: mysql drupal drupal-7


【解决方案1】:

从 mysql 错误来看,您创建的表似乎有必填字段(a columns Null 属性设置为 0,这意味着您要插入的每一行的 tha 列必须有一个值)

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

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

【讨论】:

  • 我在这里为我自己的项目制作了一个自定义的 drupal 插件。这是我的一段代码,我仍然遇到麻烦。我认为 Jermin Bazazian 是对的,drupal 将我的日期查询作为 3 个单独的变量而不是单个变量传递,这就是我分析后认为的问题
【解决方案2】:

我终于找到了答案,我只需要下载“日期”模块并激活它的“日期 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

【讨论】:

    猜你喜欢
    • 2017-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-05
    • 1970-01-01
    • 2014-12-13
    • 2013-03-28
    相关资源
    最近更新 更多