飞飞 2017-03-23 15:25:43 7736次浏览 1条回复 0 0 0

在做Yii2插入数据表返回插入的ID的时返回的ID不是最新插入的而是之前数据的一个ID。

最终虽然解决了,但是没找到啥原因,现记录一下解决方法。

解决方法用 $model->id 替换 Yii::$app()->db->getLastInsertID();

我的代码如下:

$model = new Img();
$params['Img'] = array(
	'type' => $type,
	'name' => $imgurl,
	'addtime' => date("Y-m-d H:i:s")
);
if ($model->load($params) && $model->save()) {
	return Yii::$app->db->getLastInsertID();
}
else
{
	return false;
}

知道原因的望告知,共同学习欢迎大家访问 PHP学习网

  • 回复于 2017-03-24 11:54 举报

    return Yii::$app->db->getLastInsertID(); 这行代表数据库最后一次访问的id,并不一定是你的 new Img 可能会是其它的。

    所以$model->save(), 以后所有的属性应该来自$model->attributes

    1 条回复
    回复于 2017-03-24 16:44 回复

    原来是这么回事,明白啦,谢谢啦!

您需要登录后才可以回复。登录 | 立即注册