首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在php中插入db后获得最后一个id

如何在php中插入db后获得最后一个id
EN

Stack Overflow用户
提问于 2022-05-26 06:53:44
回答 2查看 52关注 0票数 0

在这里,我将数据保存到具有多行的数据库中,我想检索每一行的最后一个id,如何做到这一点?

例:输入数据时print_r结果。

代码语言:javascript
运行
复制
Array
(
    [0] => Array
        (
            [name] => metode 11
            [description] => DESC 1
        )

    [1] => Array
        (
            [name] => metode 22
            [description] => DESC 2
        )

    [2] => Array
        (
            [name] => metode 33
            [description] => DESC 1
        )
)

在数据库中

代码语言:javascript
运行
复制
id | name      | description
1    metode 11   desc 1
2    metode 22   desc 2
3    metode 33   desc 3

输入完成后,我想获取每个id,这是我的代码

代码语言:javascript
运行
复制
$data = array(); 
$numrow = 1;
foreach ($sheet as $row) {
    if ($numrow > 1) {
        array_push($data, array(
                'name'              => $row['A'],
                'description'       => $row['B'],
        ));
    }
    $numrow++;
}

$this->db->insert_batch('my_tabel', $data);
$myid =$this->db->insert_id();
//after insert i retrieve id using last_id() function, however, only last id is fetched, i want to fetch each id

$data_1 = array();
$numrow2 = 1;

foreach ($sheet as $row) {
    if ($numrow2 > 1) {
        array_push($data_1, array(
            'id_last'  => $myid,
            'id'     => $row['E'],
            'barang' => $row['F'],
        ));
    }
    $numrow2++;
}

我想要这样:

代码语言:javascript
运行
复制
Array
        (
            [0] => Array
                (
                    [last_id] => 1
                    [id] => 33
                    [barang] => ccc
                )
        
            [1] => Array
                (
                    [last_id] => 2
                    [id] => 44
                    [barang] => dd
                )
        
            [2] => Array
                (
                    [last_id] => 3
                    [id] => 55
                    [barang] => eee
                )
        )

预先感谢那些回答的人,我希望我说的足够清楚

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-05-26 07:14:58

为什么不逐行插入,而不是成批插入?从每一个插入中构建一个字典,以便稍后将其对回来。

代码语言:javascript
运行
复制
$data = array(); 
$numrow = 1;
foreach ($sheet as $row) {
    if ($numrow > 1) {
        array_push($data, array(
                'name'              => $row['A'],
                'description'       => $row['B'],
        ));
    }
    $numrow++;
}
$array_of_insert_id = array();

foreach ($data as $index => $data_to_insert) {
    $this->db->insert('my_tabel', $data_to_insert);
    $array_of_insert_id[$index] = $this->db->insert_id();
}

$data_1 = array();
$numrow2 = 1;
$counter = 0;


foreach ($sheet as $row) {
    if ($numrow2 > 1) {
        array_push($data_1, array(
            'id_last'  => $array_of_insert_id[$counter],
            'id'     => $row['E'],
            'barang' => $row['F'],
        ));
    }
    $numrow2++;
    $counter++;
}
票数 1
EN

Stack Overflow用户

发布于 2022-05-29 09:36:38

代码语言:javascript
运行
复制
//table field with input field data array
$table_data = [
   'table_field1' => $input_data1,
   'table_field2' => $input_data2,
];

//insert data in database 
$this->db->insert('table_name',$table_data);

//after insert return id
return $inserted_id = $this->db->insert_id();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72387887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档