在CodeIgniter 4中保存到数据库后如何获取插入ID

Enc*_*ted 6 php mysql codeigniter-4

我正在使用 Codeigniter 4。

并像这样插入新数据,

$data = [
        'username' => 'darth',
        'email'    => 'd.vader@theempire.com'
];

$userModel->save($data);
Run Code Online (Sandbox Code Playgroud)

这里提到:CodeIgniter's Model reference

它正在执行插入操作。但是我还没有找到任何关于在插入后获取插入 id 的参考。

请帮忙!提前致谢。

Enc*_*ted 12

在研究了 CI 4 框架的核心之后,我得到了一个简单的解决方案。

$db = db_connect('default'); 
$builder = $db->table('myTable');

$data = [
        'username' => 'darth',
        'email'    => 'd.vader@theempire.com'
];

$builder->insert($data);
echo $db->insertID();
Run Code Online (Sandbox Code Playgroud)

希望他们尽快在文档中添加清晰的描述。

  • 它在查询生成器类 codeigniter 版本 4.2.1 中不起作用 (3认同)

Say*_*uad 12

这也有效。

       $user= new UserModel();

        $data = [
                 'username' => 'darth',
                  'email'    => 'd.vader@theempire.com'
              ];

        $user->insert($data);
        $user_id = $user->getInsertID();
Run Code Online (Sandbox Code Playgroud)


小智 5

ci4中有三种获取ID的方法:

$db = \Config\Database::connect();
$workModel = model('App\Models\WorkModel', true, $db);
$id = $workModel->insert($data);
        
echo $id;
echo '<br/>';
echo $workModel->insertID(); 
echo '<br/>';
echo $db->insertID();
Run Code Online (Sandbox Code Playgroud)