Domanda

Esempio: effettuando un bonifico pagamento da utente A all'utente B. Account dell'utente A: -10 USD Conto utente B: +10 USD

se è presente una transazione, e qualcosa va storto, tutto viene annullata. Quindi, con le transazioni che non accadrà che il conto di utente A viene diminuito del 10, mentre il conto di utente B non viene aumentato del 10.

So che la gente java fanno uso di transazioni e rollback in tutto il luogo. Ma non ho mai sentito parlare di PHP-ragazzi che lo fanno.

Nessuna soluzione corretta

Altri suggerimenti

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

Assicurarsi che le tabelle utilizzano il motore InnoDB:. MyISAM non supporta le transazioni

Aggiorna il commento :

InnoDB è uno dei due motori di archiviazione principali utilizzati dal MySQL, l'altro è MyISAM.

MySQL viene fornito con il supporto InnoDB compilato per impostazione predefinita e in effetti ci vuole un certo sforzo per disattivarlo.

Non ho mai sentito parlare di MySQL con InnoDB disattivato anche da più economico dei hoster.

Se si utilizza DOP, ma ha anche il supporto delle transazioni

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

come è stato già detto, assicurarsi di utilizzare il motore di memorizzazione InnoDB.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top