我一直在为此暂时失去理智.我不使用Yii,我刚刚继承了一些遗留代码,我试图绕过它.
我正在使用活动记录将记录添加到数据库中.
代码是这样的:
$result = new Result();
$result->setIsNewRecord(true);
$result->SourceId = Sources::CIP;
$result->PartnerId = $partner->Id;
$result->Result = '<h1>'.$partner->Name.'</h1>'.$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值,这意味着如果你回滚或者没有提交,你就会“失去”这个值……
Read more here (specifically the first comment)
这很可能是由于isolation levels的工作方式.
如果辅助功能在同一个线程中运行并且是同一事务的一部分,它将读取数据.
如果辅助功能未在同一线程中运行,但隔离级别允许脏读,则它将读取数据.
如果您需要更多帮助,请在评论中大声说出来.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。