Ist es möglich, MySQL-Datenbank-Transaktionen und Rollbacks mit PHP zu tun?
-
06-09-2019 - |
Frage
Beispiel: eine Zahlung Übertragung von Benutzer A zu Benutzer B Account des Benutzers A: -10 USD Account des Benutzers B: 10 USD
, wenn es eine Transaktion ist, und etwas schief geht, wird alles wieder rückgängig gemacht. Also mit Transaktionen wird es nicht das Konto des Benutzers A passieren wird um 10 verringert, unter Berücksichtigung der Benutzer B nicht um 10 erhöht wird erhalten.
Ich weiß, dass die Java-Menschen Nutzung von Transaktionen und Rollbacks der ganzen Ort. Aber ich habe noch nie von PHP-Jungs zu hören, das zu tun.
Keine korrekte Lösung
Andere Tipps
$db = new mysqli("localhost", "", "", "");
$db->autocommit(FALSE);
if ($db->query("INSERT ..."))
$db->commit();
else
$db->rollback();
Stellen Sie sicher, dass Ihre Tabellen verwenden InnoDB
Engine. MyISAM
Transaktionen nicht unterstützt
Kommentar Update :
InnoDB
ist eine von zwei Speicher-Engines-Dur von MySQL
verwendet, die andere ist MyISAM
.
MySQL
kommt mit InnoDB
Unterstützung standardmäßig und in der Tat kompilierte in dauert es einige Mühe, die es zu deaktivieren.
Ich habe noch nie von MySQL
mit InnoDB
auch durch billigste der Hoster deaktiviert gehört.
Wenn Sie gU verwenden, hat es auch Transaktionsunterstützung
http://us2.php.net/manual/en/pdo .begintransaction.php
wie bereits gesagt, stellen Sie sicher, Sie verwenden, um die Speicher-Engine InnoDB.