Drupal 7 - db_insert返回错误

时间:2013-01-15 12:47:44

标签: database drupal drupal-7

我在 Drupal 7 中尝试了一个简单的插入查询,但它总是返回错误。 我也尝试了 db_insert drupal_write_record db_query ,但每个函数都会返回各种错误。

我有一个 tabledrag_menu 表:

enter image description here

我有一个 $ adat 数组:

Array
(
    [name] => Overview
    [weight] => 0
    [group] => left
    [checked] => 0
    [tid] => 96
    [nid] => 20
)

使用var_dump它看起来像这样:

array(6) { ["name"]=>   string(8) "Overview"   ["weight"]=>   int(0)   ["group"]=>   string(4) "left"   ["checked"]=>   int(0)   ["tid"]=>   int(96)   ["nid"]=>   int(20) } 

我的代码,它给出了错误:

$id = db_insert('tabledrag_menu')->fields($adat)->execute();

当我使用 db_insert 时,它会返回并显示以下错误消息:

  

PDOException:SQLSTATE [42000]:语法错误或访问冲突:1064   您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   靠近'group,checked,tid,nid)VALUES('Overview','0','left','0',   '96','20')'第1行:INSERT INTO {tabledrag_menu}(姓名,重量,   group,checked,tid,nid)VALUES(:db_insert_placeholder_0,   :db_insert_placeholder_1,:db_insert_placeholder_2,   :db_insert_placeholder_3,:db_insert_placeholder_4,   :db_insert_placeholder_5);数组([:db_insert_placeholder_0] =>   概述[:db_insert_placeholder_1] => 0 [:db_insert_placeholder_2] =>   left [:db_insert_placeholder_3] => 0 [:db_insert_placeholder_4] => 96   [:db_insert_placeholder_5] => 20)

我认为,这部分导致错误,但我不知道如何解决它:

  

VALUES('概述','0','左','0',   '96','20')

2 个答案:

答案 0 :(得分:6)

组是MySql保留字。尝试使用该字段的其他名称。

答案 1 :(得分:1)

尝试从整数列内的值中删除单引号。

E.g。改变这个

VALUES ('Overview', '0', 'left', '0', '96', '20')

类似于:

VALUES ('Overview', 0, 'left', 0, 96, 20)