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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top