Ciao a tutti, avrei bisogno di aiuto per fare una transazione. Premetto che non sono molto competente in materia e ho già provato diverse query trovate su internet nessuna funzionante...
Questo è il mio codice php
Codice PHP:
if($importo>$saldo){
echo"
L'importo supera il saldo disponibile.</p>";
}
else{
$con =mysqli_connect("localhost","uReadWrite","SuperPippo!!!","pagamenti");
if (mysqli_connect_errno())
printf ("
errore - collegamento al DB impossibile: %s
\n", mysqli_connect_error());
else{
$query1="UPDATE usr SET saldo=saldo-'$importo' WHERE nome='$src'";
$query2="UPDATE usr SET saldo=saldo+'$importo' WHERE nome='$dst'";
$query3="INSERT INTO `log` (`src`, `dst`, `importo`, `data`) VALUES ('$src_nick', '$dst_nick', $importo, '$data')";
$result1= mysqli_query($con,$query1);
$result2= mysqli_query($con,$query2);
$result3= mysqli_query($con,$query3);
if(!$result1)
{
printf ("
errore – query fallita: %s
\n", mysqli_error($con));
}
else if(!$result2)
{
printf ("
errore – query2 fallita: %s
\n", mysqli_error($con));
}
else if(!$result3)
{
printf ("
errore – query3 fallita: %s
\n", mysqli_error($con));
}
else{ ......
Cosi facendo se ho degli errori me li segnala ma se per esempio ha dei problemi la terza query le prime 2 me le effettua, facendo un lavoro a metà (cosa che voglio evitare). So che dovrei usare le transazioni con roolback e commit ma non sono capace. Sapete dirmi come fare? Grazie