4

PHPとRedBean(およびトランザクション)を使用してMySQLデータベースにデータをインポートしているときに、インポートの実行中に行数が増加していることに気づきました。疑わしい点を確認するために、インポート機能の最後でをに変更しR::commit()R::rollback()、インポートを試みました。実際、ロールバックと呼んでも、データはインポートされて永続的です。

なぜトランザクションがその仕事をしていないのか、どこから探し始めるのかわからないので、この質問です。これが関数のインポート部分です。トランザクションが機能していないことを除けば、インポート機能はうまく機能しているので、それを分析する必要はありません。

ありとあらゆる仮説をありがとう

4

1 に答える 1

11

AHA!とった。@furierが間違っていることを証明したいので、RedBeanトランザクションのドキュメントを調べて、非常に役立つメモを見つけました。

R::freeze(true);多くのデータベースはスキーマを変更すると自動的にコミットするため、 !の後にトランザクションをテストしてください。

R::freeze(true);要約すると、アプリケーションですべてのトランザクションアクションを中断してRedBeanをフリーズしていない場合、一部のデータベースは自動コミットする可能性があります

于 2012-06-01T18:53:12.303 に答える