ciao a tutti sto cercando di usare il rollback... ma non funziona come vorrei.
Praticamente quello che vorrei è questo:
nel codice quando una query va in errore, mi salvo l'errore in un array.
alla fine.. se nell'array ho degli errori faccio il rollback.. e fin qui tutto ok.
e successivamente al rollback vorrei ciclare l'array e fare degli insert su una tabella per salvarmi gli errori.
ecco... non mi fa gli insert di salvataggio degli errori.
perchè fa rollback pure su quella..
se infatti aggiungo
$mysqli->autocommit(TRUE);
prima della funzione logerror.... l'inserimento dell'errore viene fatto.
codice:
// disable autocommit
$mysqli->autocommit(FALSE);
............. una serie di query varie....
if(count($arrayToJs) > 0)
{
//se ci sono errori allora Rollback
$mysqli->rollback();
//ciclo l'array logerror per inserire gli errori su db
foreach ($arraylogerror as $valueerror) {
foreach ($valueerror as $key => $value) {
//logerror($idutente, $nome, $pagina, $query)
switch($key)
{
case 0:
$idutente = $value;
break;
case 1:
$nome = $value;
break;
case 2:
$pagina = $value;
break;
case 3:
$error = $value;
break;
}
//echo $key." => ".$value;
}
//echo "<hr>";
$mysqli->logerror($idutente, $nome, $pagina, $error);
}
} else {
//altrimenti Commit
$mysqli->commit();
}
Ringrazio in anticipo per l'aiuto