You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

CodeIgniter3表单提交无报错但数据未插入数据库问题求助

核心错误&修复方案

你当前最明显的问题是视图文件的表单属性写错位了:你把action、method属性写到了第一个<div class="form-group">标签上,没有绑定到<form>标签,导致表单默认以GET请求提交到当前页面,根本不会请求你的admin/add接口,也不会传递POST数据。
直接修改admin-index.php的表单部分即可:

<!-- 把action、method属性移到form标签上 -->
<form action="<?php echo base_url(); ?>admin/add" method="POST">
  <div class="form-group">
    <label>First Name</label>
    <input type="text" name="firstName" class="form-control">
  </div>
  <!-- 后续其余div代码无需改动 -->
  <button type="submit" name="submit" value="submit" class="btn btn-primary">Submit</button>
</form>

其他排查思路

如果修复表单后还是无法插入数据,按以下优先级排查:

  • 先确认POST数据是否正常传到控制器,在控制器add方法最开头加调试代码,提交表单看输出是否有你填的内容:
    public function add()
    {
        var_dump($this->input->post());exit;
        // 原有代码
    }
    
  • 确认数据库表tblaccount的字段名和你插入数组的键名完全一致,大小写、拼写都不能有偏差
  • 在模型插入语句后打印执行的SQL,确认生成的插入语句是否正确,复制到数据库手动执行看是否报错:
    public function add_user($data)
    {
        $this->db->insert('tblaccount', $data);
        echo $this->db->last_query();exit;
    }
    
  • 检查是否开启了CSRF保护,如果开启需要在表单里加CSRF隐藏字段,或者临时修改配置文件里$config['csrf_protection'] = false测试
  • 可以增加插入结果判断,确认插入操作是否成功:
    模型修改:
    public function add_user($data)
    {
        return $this->db->insert('tblaccount', $data);
    }
    
    控制器修改:
    $res = $this->Admin_model->add_user($newData);
    var_dump($res);exit; // true为插入成功,false为插入失败
    

注意:你当前代码是直接存明文密码,正式上线前一定要对密码做哈希加密处理,不要明文存储敏感信息

内容的提问来源于stack exchange,提问作者jesse emmanuel basco

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 12:15:00