PHPとMySQLのデータベーストランザクションやロールバックを行うことが可能ですか?

StackOverflow https://stackoverflow.com/questions/934254

  •  06-09-2019
  •  | 
  •  

質問

例:ユーザBにユーザAからの支払いの転送を行います 利用者Aのアカウント:-10 USD ユーザーBのアカウント:10 USD

が取引され、そして何かがうまくいかない場合は、すべてが元に戻されます。取引と、それは、ユーザAのアカウントを発生しませんので、ユーザーBのアカウントが10増加しませんが、10減少します。

私は、Javaの人々はすべての場所でのトランザクションおよびロールバックを利用することがわかっています。しかし、私はそれをやってPHP-みんなのことを聞いたことがありません。

正しい解決策はありません

他のヒント

$db = new mysqli("localhost", "", "", "");
$db->autocommit(FALSE);
if ($db->query("INSERT ..."))
    $db->commit();
else
    $db->rollback();

あなたのテーブルがInnoDBエンジンを使用していることを確認してください:MyISAMがトランザクションをサポートしていません。

コメント更新

InnoDBMySQLによって使用される二つの主要なストレージエンジンの一つであり、他の一つであるMyISAM

MySQLは、デフォルトでコンパイルInnoDBのサポートが付属していますし、実際にそれを無効にするいくつかの努力を要します。

私もホスティング事業者の最も安いでは無効になってMySQLInnoDBのことを聞いたことがありません。

あなたはPDOを使用している場合、それはまた、トランザクションをサポートしています。

http://us2.php.net/manual/en/pdo .begintransaction.phpする

すでに述べた

のように、あなたはInnoDBストレージエンジンを使用してください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top