PHPとMySQLのデータベーストランザクションやロールバックを行うことが可能ですか?
-
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
がトランザクションをサポートしていません。
のコメント更新の
InnoDB
はMySQL
によって使用される二つの主要なストレージエンジンの一つであり、他の一つであるMyISAM
。
MySQL
は、デフォルトでコンパイルInnoDB
のサポートが付属していますし、実際にそれを無効にするいくつかの努力を要します。
私もホスティング事業者の最も安いでは無効になってMySQL
とInnoDB
のことを聞いたことがありません。
あなたはPDOを使用している場合、それはまた、トランザクションをサポートしています。
http://us2.php.net/manual/en/pdo .begintransaction.phpする
すでに述べたのように、あなたはInnoDBストレージエンジンを使用してください。
所属していません StackOverflow