PDOトランザクションブロック内でファンクションコールが発生することはありますか?この単純化されたコード(使用してMySQLデータベース)...この場合はPDOトランザクションとファンクションコール
try{
$db->beginTransaction();
// call to function that creates user
$user_id = create_user();
// call to function that creates company
$company_id = create_company();
// call to function to link user & company
add_user_to_company($user_id, $company_id);
$db->commit();
}
は、トランザクションを使用して起こることはできませんが、お勧めの戦略は何ですか?
さらに明確にするために、ネストされたトランザクションはMySQLではサポートされていないため、機能の中でトランザクションを開始していないことを確認してください。そうしないと、[自動的に保留中のトランザクションをコミットします](http://dev.mysql .com/doc/refman/5.5/en/implicit-commit.html)。 –
また、DDL(作成/変更/ドロップ文)は、実行していたトランザクションをコミットするため、使用しないでください。 – Kris