我一直在为此暂时失去理智.我不使用Yii,我刚刚继承了一些遗留代码,我试图绕过它.
我正在使用活动记录将记录添加到数据库中.
代码是这样的:
$result = new Result();
$result->setIsNewRecord(true);
$result->SourceId = Sources::CIP;
$result->PartnerId = $partner->Id;
$result->Result = '
'.$partner->Name.'
'.$raport;$result->ResultTypeId = empty($nasoale)?9:8;
$result->Enabled = 1;
$result->Date = date('Y-m-d H:i:s');
$result->CreationUserId = Yii::app()->params['sistemUser'];
$result->LastUpdateUserId = Yii::app()->params['sistemUser'];
$result->save();
这不会给出错误.它甚至具有“插入”查询的Id.问题是,它不在数据库中.在插入之后,我有另一个基于“PartnerId”和“SourceId”搜索的功能,它实际上找到了记录.我不知道怎么做,但确实如此.
我以同样的方式将其他东西插入到数据库中,在同一个表中我之前没有遇到过这个问题.
任何有关这方面的帮助将不胜感激.
解决方法:
听起来你有同样的core problem多个问题.
插入,缺少数据库,没有错误
这很可能是因为事务已启动,但发生了ROLLBACK(或未发出COMMIT)
如果表具有AUTO_INCREMENT字段且缺少行,则可以在某种程度上确认这一点.
那是因为你不允许重复使用AUTO_INCREMENT值,这意味着如果你回滚或者没有提交,你就会“失去”这个值……
插入,缺少数据库,下一个查询查找数据
如果辅助功能在同一个线程中运行并且是同一事务的一部分,它将读取数据.
如果辅助功能未在同一线程中运行,但隔离级别允许脏读,则它将读取数据.
如果您需要更多帮助,请在评论中大声说出来.
标签:php,mysql,yii
来源: https://codeday.me/bug/20190830/1769712.html