一段时间以来,我一直为此而发疯。我不使用 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”进行搜索的功能,它实际上找到了记录。我不知 Prop 体如何,但确实如此。
我以同样的方式将其他内容插入到数据库中,在同一个表中,之前我没有遇到过这个问题。
如有任何帮助,我们将不胜感激。
最佳答案
听起来您有多个问题源于同一个 core problem .
插入,数据库缺失,无错误
这很可能是因为事务已启动,但发生了ROLLBACK
(或未发出COMMIT
)
如果表有一个 AUTO_INCREMENT
字段并且缺少行,这可以在某种程度上得到证实。
那是因为您不允许重用 AUTO_INCREMENT 值,这意味着如果您回滚或不提交,您将“丢失”该值...
Read more here (specifically the first comment)
插入,在数据库中丢失,下一个查询找到数据
这很可能是因为 isolation levels 的方式工作。
如果辅助函数在同一线程中运行并且是同一事务的一部分,它将读取数据。
如果辅助函数不在同一线程中运行,但隔离级别允许脏读,它将读取数据。
如果您需要更多帮助,请在评论中大声疾呼。
关于php - YII 事件记录未插入数据库但未给出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24692936/