CodeIgniter上传图片提示Unknown column 'Array' in 'field list'如何解决
问题排查结果
核心错误原因
你存入account_data表avatar字段的值是数组类型,不是字符串格式的文件名,数据库执行更新时自动把数组转为字符串Array,最终触发Unknown column 'Array' in 'field list'报错。
产生该问题的两个具体诱因:
- 你使用的CodeIgniter版本中,
$this->upload->data()方法不支持传入键名直接获取单个上传属性,无论传入什么参数都会返回包含所有上传信息的完整数组,所以$this->upload->data('file_name')拿到的是数组而非文件名字符串。 - 你的上传配置缺少必填的
upload_path参数,会导致上传逻辑异常,即使走到成功分支也无法获取到正确的文件信息。
你提供的其余自定义配置项(allowed_types、max_size、max_width等)本身没有逻辑问题。
修复方案
- 补全上传配置,增加上传路径配置,提前创建对应存储目录并开启可写权限:
// 在upload方法的$config配置数组中新增这行,路径替换为你实际的头像存储目录 $config['upload_path'] = './uploads/avatar/';
- 修改获取文件名的逻辑,先读取完整上传数据再取文件名:
// 替换掉原来的setAvatar调用代码 $uploadData = $this->upload->data(); $this->avatar_model->setAvatar(array('avatar' => $uploadData['file_name']));
内容的提问来源于stack exchange,提问作者Yukki
相关产品推荐
相关产品推荐

