织梦自定义表单提交数据保存到数据库
织梦自定义表单能不能把提交的数据真正写进数据库,取决于后台表单字段、数据表字段和前台提交模板三者是否对应。
只要按本文步骤配置,前台提交后就能在数据库对应表里查到记录,并能在后台正常查看和导出。
先弄清数据存到哪张表
织梦自定义表单默认会把数据写入 dede_diyform 系列表,常见命名是 dede_diyform1、dede_diyform2,编号取决于你创建表单的顺序。
如果站点前缀不是 dede_,以你安装时的前缀为准。
判断方法很简单:登录数据库管理工具,例如 phpMyAdmin 或宝塔面板的数据库管理,查看表列表里有没有 diyform 开头的表。
没有的话,说明表单还没生成对应数据表,需要先在后台完成表单创建。
后台创建表单并核对字段
进入织梦后台,依次点击 核心 → 自定义表单 → 增加表单。
填写表单名称,例如“留言登记”,然后进入字段管理,为表单添加需要的字段。
添加字段时重点看三项:
- 字段名称:建议用英文,例如
name、tel、content,方便和数据库字段对应。 - 字段类型:文本、多行文本、下拉框按实际需求选。
- 是否必填:按业务决定,必填项前台会做基础校验。
字段添加完成后,后台会自动生成对应的数据表结构。
如果你手动改过表结构,后续提交就可能失败,所以不建议随意删改字段。
前台模板提交路径要写对
自定义表单的前台提交通常走 plus/diy.php。
检查你的表单模板中 form 的 action 是否指向这个文件,并且 method 为 post。
一个常见的写法是:
这里的 diyid 就是表单编号,必须和后台创建的表单 ID 一致。name 属性要和后台字段名称对应,否则数据写不进对应字段。
提交测试与入库验证
保存模板后,用浏览器打开前台页面,填写内容并提交。
提交后如果页面提示成功,就去数据库里查数据。
在 phpMyAdmin 或宝塔数据库管理里执行:
SELECT * FROM dede_diyform1 ORDER BY id DESC LIMIT 5;
把 dede_diyform1 换成你的实际表名。
如果能查到刚提交的记录,说明表单提交数据保存到数据库已经成功。
如果查不到数据,先看提交后有没有报错,再检查 diyid 是否写错、字段名是否对应、数据库连接配置 data/common.inc.php 是否正常。
常见报错和避坑说明
提交后空白或 500 错误:多数是 plus/diy.php 文件权限或 PHP 版本兼容问题,先查看服务器错误日志,确认文件没有被误删。
数据表不存在:后台表单可能只建了配置,没有生成数据表。
回到 自定义表单 里重新保存一次字段,或手动核对表前缀。
字段对不上导致入库为空:前台 name 属性写成了中文或和后台不一致,数据库里对应字段就是空值。
统一用后台字段名称。
不要随意改表结构:手动给 dede_diyform 表加字段或改类型,容易让织梦的写入逻辑出错。
需要新字段时,优先在后台字段管理里添加。
验证与后续维护
每次调整表单后,建议做一次完整回归:前台提交一条测试数据,后台 自定义表单 里查看记录,数据库里再 SELECT 一次。
三步都能看到数据,才说明链路完整。
如果站点开启了缓存,修改模板后记得清理缓存再测试。
数据量变大后,可以定期在后台导出表单数据,避免直接操作数据库造成误删。