php - YII 事件记录未插入数据库但未给出错误

标签 php mysql yii

一段时间以来,我一直为此而发疯。我不使用 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/

相关文章:

php - Mysql 撇号和引号问题

mysql - 使用匹配 ID 将数据从表 1 插入和更新到表 2

php - 如何在 Yii 中使用 CListView 自定义 dataProvider

yii - 函数 fastcgi_finish_request 花费大部分执行时间

php - 如何使用此 id 编写此查询?

php - 将 php/mysql 列输出显示为行

php - 带有PHP的SQL mysqli_fetch_array错误

javascript - 在多表列中具有多个术语的简单 PHP 过滤器

php - 如何在 Yii2 中获取用户角色?

rhel6 上的 php pdo_informix - 未实现可选功能