为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用codeigniter在MYSQL数据库中使用数组索引上传文件

如何使用codeigniter在MYSQL数据库中使用数组索引上传文件

PHP
慕森王 2021-11-26 16:00:39
对不起,如果这是一个菜鸟问题,我仍然是 codeigniter 的新手,这是我的问题,我有一个回复,看起来像这样Array([0] => Array([original_name] => avatar_img12.png [filename] => avatar_img12.png) [1] => Array([original_name]=> add_icon27.png [filename] => add_icon27.png))我有 2 个输入类型的文本框文件,这就是为什么它只有 0 和 1 的索引,在需要两个输入类型文件的帮助下,我能够将它上传到我的数据库中,但我的问题是用户何时更新他们的数据,他们可能会更新相同的文件,或者只是其中的一个。我怎样才能只更新特定的索引。我已经尝试为每个索引创建一个 if 语句,但我有一个错误offset 1或offset 0这是我的模型          if($files[0] != '' && $files[1]==''){            $this->db->select('id,picture_id');            $this->db->from($this->project_tbl);            $this->db->where('id',$id);             $query = $this->db->get();                if($query->num_rows() > 0){                    $this->db->where('id', $query->row()->picture_id);                    $this->db->update($this->project_core_documents, $files[0]);                }            }else if($files[1] != '' && $files[0]==''){                $this->db->select('id,detailed_report_id');                $this->db->from($this->project_tbl);                $this->db->where('id',$id);                $query = $this->db->get();                    if($query->num_rows() > 0){                        $this->db->where('id', $query->row()->detailed_report_id);                        $this->db->update($this->project_core_documents, $files[1]);                    }            }else{                //both files            }这是我的表格<form class="kt-form" id = "save_project" enctype="multipart/form-data"><input type="file" class="form-control project_userfiles" name = "userfile[]" multiple=""><input type="file" class="form-control project_userfiles" name = "userfile[]" multiple=""></form>这就是我如何获取用于上传的数组 $files 我正在使用帮助程序。这样我就可以在我的控制器上调用它。我有一个错误,undefined offset:1如果我只是为索引 [0]undefined offset:0上传,如果我只是为索引 [1] 上传,如果两个索引都有一个值,则没有错误,我仍然不知道如何在我的查询中执行它,如果这两个索引都有一个值。提前致谢。对不起,如果我的解释不那么准确。
查看完整描述

1 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

它得到未定义的索引,因为在您的上传功能上,如果您只上传单个文件,那么它只会生成单个上传数据,因此 the $files[0]or$files[1]数组将是未定义的,并且松散相等或松散非相等条件将失败。

为了让你的逻辑工作,你可以使用empty检查:


if (!empty($files[0]) && empty($files[1])) {

    $this->db->select('id,picture_id');

    $this->db->from($this->project_tbl);

    $this->db->where('id', $id);

    $query = $this->db->get();

    if ($query->num_rows() > 0) {

        $this->db->where('id', $query->row()->picture_id);

        $this->db->update($this->project_core_documents, $files[0]);

    }

} else if (!empty($files[1]) && empty($files[0])) {

    $this->db->select('id,detailed_report_id');

    $this->db->from($this->project_tbl);

    $this->db->where('id', $id);

    $query = $this->db->get();

    if ($query->num_rows() > 0) {

        $this->db->where('id', $query->row()->detailed_report_id);

        $this->db->update($this->project_core_documents, $files[1]);

    }

} else {

    //both files

}

if即使其中一个$files具有未定义的索引,这也会执行该块。但是你应该注意,else如果两者$files都不为空,并且两者都$files为空,则该语句将被执行


查看完整回答
反对 回复 2021-11-26
  • 1 回答
  • 0 关注
  • 131 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信