我是一个相当新的用户,我有一个小项目,我正在做。我没有使用Yii的模型生成器,因为我的查询非常自定义,而且我仍然不太满意整个yii活动记录的东西,所以我现在坚持查询构建器。我已经掌握了制作sql语句的基本思路,但我想我会遇到一个我需要做的问题。
基本上,我将数据插入到一个表中,我需要获取刚刚插入的数据的id列的值。最简单的方法是只进行插入并获取id列的最大值,但我很确定这不是正确的方法 - 因为其他人可以“同时”插入内容而且我可能最终得到错误的值 - 我需要正确的值,因为我将把它插入另一个表。
我已经看到insert()函数的返回值是一个整数,插入行的数量所以我不能使用它。
基本上,有没有办法将我刚刚插入的数据插入到100%正确的表格中?安全 - 即使其他人“在同一时间”将某些东西插入桌面?
答案 0 :(得分:4)
你想要getLastInsertId() of the CDbConnection课程:
$id = Yii::app()->db->getLastInsertId();
答案 1 :(得分:3)
如果您保存了模型,则可以使用
访问它$model->id
假设id是数据库中的自动增量id字段。 显然,在保存模型之前,你无法得到它的id