http://dev.mysql.com/doc/refman/5.1/ja/xa-statements.html
現在試した具体的なコードは、文字数の制限で投稿出来なかったので「コメント欄」に掲載させて頂きますが、どこが間違っているのでしょうか。現状では DB bar へのインサートは行われましたが、DB foo へのインサートが行われない状況です。また、ロールバックも正常に機能しておりません。
「複数DBへデータをインサート→コミット」、「エラーなら複数DBに対しロールバック」ということが行いたいのですが、、、具体的なPHPコードをお教え頂けると嬉しいです。
try {
//DB foo へ接続
$dbh = DB::connect('foo');
//DB foo へ データをインサート
$dbh->query("XA START 'xatest';");
$dbh->query("INSERT INTO table (column) VALUES(tes);");
$dbh->query("XA END 'xatest';");
$dbh->query("XA PREPARE 'xatest';");
//DB bar へ接続
$dbh = DB::connect('bar');
//DB bar へ データをインサート
$dbh->query("XA START 'xatest';");
$dbh->query("INSERT INTO table (column) VALUES(tes);");
$dbh->query("XA END 'xatest';");
$dbh->query("XA PREPARE 'xatest';");
//コミット
$dbh->query("XA COMMIT 'xatest';");
} catch (Exception $e) {
//ロールバック
$dbh->query("XA ROLLBACK 'xatest';");
echo "失敗しました。" . $e->getMessage();
die();
}