在codeigniter中根据文件输入是否为空的数据库查询

时间:2018-10-16 09:07:57

标签: codeigniter-3

因此,我正在将我的项目从核心PHP更改为Codeigniter。我对其3个输入类型的文件进行了编辑。现在,我想根据这些inout文件运行查询。例如,如果输入文件1为空,则不更新值,否则更新。我是这样在核心PHP中完成的:

输入类型文件的名称为:image1,image2,image3

核心PHP中的mysqli查询:

if(!empty($photo1))
{
    $p1=str_replace("-","",time().$photo1);
    move_uploaded_file($_FILES['photo1']['tmp_name'], $folder.$p1);

    $query .=",`image1`='$p1'";

}
if(!empty($photo2))
{
    $p2=str_replace("-","",time().$photo2);
    move_uploaded_file($_FILES['photo2']['tmp_name'], $folder.$p2);

    $query .=",`image2`='$p2'";
}
if(!empty($photo3))
{
    $p3=str_replace("-","",time().$photo3);
    move_uploaded_file($_FILES['photo3']['tmp_name'], $folder.$p3);

    $query .=",`image3`='$p3'";
}

现在如何在codeigniter模型中执行此操作:

控制器

public function store_ad()
{
    $id=$this->input->post('id');
    $d_email=$this->session->userdata('dealer_email');
    $p_type=$this->input->post('property_type');
    $p_subtype=$this->input->post('property_subtype');
    $p_for=$this->input->post('p_for');
    $p_name=$this->input->post('p_name');
    $p_price=$this->input->post('p_price');
    $state=$this->input->post('state');
    $city=$this->input->post('city');
    $loc=$this->input->post('location');
    $pincode=$this->input->post('pincode');
    $about=$this->input->post('p_about');
    $stat=$this->input->post('status');

    $config['upload_path'] = './images/properties';
    $config['allowed_types']='gif|png|jpeg|jpg';
    $this->load->library('upload',$config);
    if($this->upload->do_upload('image1'))
    {
        $data1=$this->upload->data();
        $img1=$data1['raw_name'].$data1['file_ext'];
    }
    if($this->upload->do_upload('image2'))
    {
        $data2=$this->upload->data();
        $img2=$data2['raw_name'].$data2['file_ext'];
    }
    if($this->upload->do_upload('image3'))
    {
        $data3=$this->upload->data();
        $img3=$data3['raw_name'].$data3['file_ext'];
    }
}

如何根据非空的输入文件对模型进行分类。我将文件名存储在数据库中

1 个答案:

答案 0 :(得分:0)

在模型类中的方法内部,检查您要上传的文件是否为空

public function update($data_array, $img1, $img2, $img3){
  if(!empty($img1)){
    $data_array['img_column1'] = $img1;
  }
  if(!empty($img2)){
    $data_array['img_column2'] = $img2;
  }
  if(!empty($img3)){
    $data_array['img_column3'] = $img3;
  }

  return $this->db->insert('YOUR_TABLE_NAME', $data_array);

}

希望这会有所帮助。...