如何将最后一个插入 id 数据发送到另一个函数?

Posted

技术标签:

【中文标题】如何将最后一个插入 id 数据发送到另一个函数?【英文标题】:how do I send the last insert id data to another function? 【发布时间】:2019-05-31 07:17:49 【问题描述】:

当我使用 var_dumb() 进行测试时,我想将最后一个插入 id 从一个表传递到另一个函数中。 有人可以告诉我如何在这段代码中做到这一点, 谢谢

这是我的控制器:

function save()

    $judul = $this->input->post('judul');
    $isi = $this->input->post('isi');
    $kategori = implode(',', $this->input->post('kategori'));
    $c_date=date("Y-m-d H:i:s");

    $data = array(
        'judul' => $judul,
        'isi' => $isi,
        'kategori' => $kategori,
        'publish' => $c_date
    );

    $ids = $this->text_editor_model->simpan($data);
    redirect('text_editor');

    $last = $this->upload_image($ids);


function upload_image($last)

    $config['upload_path'] = './berkas/news/';
    $config['allowed_types'] = 'jpg|png|jpeg';
    $config['max_size'] = 0;

    $this->load->library('upload', $config);

    var_dump($last);

    if ( !$this->upload->do_upload('file')) 
        $this->output->set_header('HTTP/1.0 500 Server Error');
        exit;
     else 
        $file = $this->upload->data();
        $this->output
            ->set_content_type('application/json', 'utf-8')
            ->set_output(json_encode(['location' => base_url().'/berkas/news/'.$file['file_name']]))
            ->_display();
        $count = count($file['file_name']);
            for ($i=0; $i < $count ; $i++) 
                $data2[$i]['id_berita'] = $last;
                $data2[$i]['img_name'] =  $file['file_name'];
            
            $this->text_editor_model->insert_img($data2);
            exit;
    

我的 simpan 模型:

function simpan($data)

    $this->db->insert('db_news',$data);

    $id_berita = $this->db->insert_id();
    return $id_berita;

【问题讨论】:

simpan() 方法在哪里? simpan 是我的模特 redirect('text_editor'); 是否重定向到另一个页面?如果这样做,则 $last = $this-&gt;upload_image($ids); 将不会执行 upload_image()之后移动redirect('text_editor'); 是由 ajax 请求调用的 save() 吗? 【参考方案1】:

如果redirect('text_editor'); 重定向到另一个页面?那么$last = $this-&gt;upload_image($ids);不会执行,所以需要先调用上传再重定向

$last = $this->upload_image($ids);
redirect('text_editor');

【讨论】:

如果我写这个,tinymce 文本编辑器图像显示错误'无法上传图像:HTTP 错误:500' 表示上传功能正在执行,$this-&gt;upload-&gt;do_upload('file') 为假 如果我将 'function image_upload($last)' 删除为仅 'function image_upload()' 和 '$data2[$i]['id_berita'] = $last;'到'$data2[$i]['id_berita'] = 1;'或者它会起作用的另一个特定值,为什么? 你确定你有$ids是一个字符串/数字吗? 是的,我确定,我认为问题出在 json 编码中

以上是关于如何将最后一个插入 id 数据发送到另一个函数?的主要内容,如果未能解决你的问题,请参考以下文章

将参数传递到另一个网页

之前:获取最后插入的 id - mysql 现在:我们应该在哪里调用最后插入的 id?

如何从数据库中获取最后插入的 id 并将其发送到组件?

如何通过mysql或python将数据插入到另一个具有相同id的表中

如何执行存储在 MySQL 中的将 ID 从一个表插入到另一个表的过程?

无法从 MySQL 获取最后插入的 ID