CodeIgniter activerecord,检索最后一个插入ID?

Posted

技术标签:

【中文标题】CodeIgniter activerecord,检索最后一个插入ID?【英文标题】:CodeIgniter activerecord, retrieve last insert id? 【发布时间】:2010-12-31 10:54:00 【问题描述】:

是否有任何选项可以在 CodeIgniter 中获取新记录的最后插入 id?

$last_id = $this->db->insert('tablename',
    array('firstcolumn' => 'value',
    'secondcolumn' => 'value')
);

考虑到表格由字段 id(自动增量)firstcolumn 和 secondcolumn 组成。

这样就可以在下面的代码中使用插入id了。

【问题讨论】:

我多次来这个问题。非常感谢! 【参考方案1】:

真丢脸……

我看了user guide,第一个函数是$this->db->insert_id();

这也适用于 activerecord 插入...

编辑:我更新了链接

【讨论】:

用户指南是此类事情的最佳朋友。我已经使用 codeigniter 2 年多了,但我仍然找到了我不知道的类似功能。 确保将您的插入和此函数包装在事务中,因为查询调度程序可能会在运行此函数之前插入另一个对象 链接失效,更新链接:ellislab.com/codeigniter/user-guide/database/helpers.html 我需要使用insert_id(),但我不知道insert_id() 被授予获取ID 属于insert() 之前!我的意思是,是否可以在另一个请求中检索属于另一个 insert() 的 ID?【参考方案2】:

Last insert id 表示您可以通过在活动记录中使用此方法获得插入的自动增量 id,

$this->db->insert_id() 
// it can be return insert id it is 
// similar to the mysql_insert_id in core php

你可以参考这个链接你可以找到更多的东西。

Information from executing a query

【讨论】:

链接不正确。请修复链接。新链接codeigniter.com/userguide3/database/helpers.html【参考方案3】:

对于特定表,您不能使用 $this->db->insert_id() 。即使最后一次插入发生在很久以前,它也可以这样获取。可能是错的。但对我来说效果很好

     $this->db->select_max('primary key');
     $result= $this->db->get('table')->row_array();
     echo $result['primary key'];

【讨论】:

【参考方案4】:

有助于请求 id 和查询的详细信息列表是

For fetching Last inserted Id :这将从表中获取最后一条记录

$this->db->insert_id(); 

获取 SQL 查询在模态请求后添加这个

$this->db->last_query()

【讨论】:

【参考方案5】:

插入查询后,使用此命令$this->db->insert_id(); 返回最后插入的 id。

例如:

$this->db->insert('Your_tablename', $your_data);

$last_id =  $this->db->insert_id();

echo $last_id // assume that the last id from the table is 1, after the insert query this value will be 2.

【讨论】:

【参考方案6】:

试试这个。

public function insert_data_function($your_data)

    $this->db->insert("your_table",$your_data);
    $last_id = $this->db->insert_id();
    return $last_id;

【讨论】:

@Dennis Decoene 您也可以访问此链接ellislab.com/codeIgniter/user-guide。【参考方案7】:

$this->db->insert_id();

试试这个作为你想要的问题。

【讨论】:

【参考方案8】:
$this->db->insert_id();

执行数据库插入时返回插入ID号

Query Helper Methods 用于 codeigniter-3

【讨论】:

【参考方案9】:
$this->db->insert_id()  

//请试试这个

【讨论】:

这个重复的答案没有给页面增加新的价值。它应该被删除。【参考方案10】:
if($this->db->insert('Your_tablename', $your_data)) 
    return $this->db->insert_id();

return false 

【讨论】:

【参考方案11】:

在codeigniter 3中,你可以这样做:

if($this->db->insert("table_name",$table_data)) 
    $inserted_id = $this->db->insert_id();
    return $inserted_id;

您可以从这里https://codeigniter.com/user_guide/database/helpers.html获得有关 Codeigniter 3 的帮助

在 Codeigniter 4 中,您可以获得最后插入的 id,如下所示:

$builder = $db->table("your table name");
if($builder->insert($table_data)) 
    $inserted_id = $db->insertID();
    return $inserted_id;

您可以从这里https://codeigniter4.github.io/userguide/database/helpers.html获得有关 Codeigniter 4 的帮助

【讨论】:

以上是关于CodeIgniter activerecord,检索最后一个插入ID?的主要内容,如果未能解决你的问题,请参考以下文章

使用 CodeIgniter ActiveRecord 进行 NULL 比较 [重复]

获取 CodeIgniter ActiveRecord 结果中每一行的关联数组

有没有办法在 CodeIgniter *不*使用 ActiveRecord 的情况下将参数传递给查询?

SQL 基准测试:PHP ActiveRecord ORM 与 MySQL 与 CodeIgniter Active Record 与标准 PHP

foreach 给了我四次相同的行(PHP、Active Record、CodeIgniter)

动态 Active Record 查询中的 Codeigniter 括号