Come ha già detto devi usare commit/rollback. Con le transazioni ti consiglio un approccio più OO.
nel tuo caso:
Codice PHP:$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')";
mysqli_query("SET AUTOCOMMIT=0");
mysqli_query("START TRANSITION");
try{
if(!mysqli_query($con,$query1){
throw new Exception("errore – query fallita: ". mysqli_error($con));
}
if(!mysqli_query($con,$query2){
throw new Exception("errore – query2 fallita: ". mysqli_error($con));
}
if(!mysqli_query($con,$query3){
throw new Exception("errore – query3 fallita: ". mysqli_error($con));
}
mysqli_query($con, "COMMIT");
}catch (Exception $ex){
echo $ex->getMessage();
mysqli_query($con, "ROLLBACK");
}

Rispondi quotando