我在Drupal模块中有一个表单,我试图提交创建一个"事件"。事件表结构为:
- 事件id
- 城市id
- 事件名称
- 已创建的字段
- 图片字段
- 时间字段
- 日期字段
- 数据字段
- 事件类型字段(类型为enum)
当我尝试创建一个新事件并使用
将其插入数据库时:$eid = db_insert('events')->fields(array(
'cid' => $cid,
'name' => $name,
'time' => $time,
'date' => $timestamp,
'data' => $extra_info,
'event_type' => $checked, //this is an array of checked checkboxes
))->execute();
会抛出一个错误:
PDOException :SQLSTATE[HY093]: Invalid parameter number: parameter was not defined: INSERT INTO {events} (cid, name, time, date, data, event_type) 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_Games, :db_insert_placeholder_5_Other); Array ( [:db_insert_placeholder_0] => 1 [:db_insert_placeholder_1] => Name [:db_insert_placeholder_2] => 23.30 [:db_insert_placeholder_3] => 1313020800 [:db_insert_placeholder_4] => More [:db_insert_placeholder_5_Games] => Games [:db_insert_placeholder_5_Other] => Other ) in event_creation_submit().
你知道我做错了什么吗?
谢谢
解决了这个问题。
将event_type
字段的类型更改为集合,并将其传递给字符串值而不是数组。这就解决了。
谢谢大家的帮助!