Hola, tengo un problema extraño al realizar varias inserciones a distintas tablas entre un START TRANSACTION y un COMMIT.
Cuando un INSERT devuelve error, se detiene la ejecución del código mostrando el error en pantalla y así no tiene lugar el COMMIT pero igualmente quedan registradas todas las inserciones realizadas hasta allí.
De momento la única forma en la que puedo lograr que deshaga los cambios realizados es no ejecutando las funciones de PHP mysqli_errno y mysqli_error.
Resumo mi código para explicarme.
Caso 1: registra todo hasta antes del error
Código
Caso 2: funciona como debería, es decir, ejecuta una sola consulta y no queda registrada (si allí hiciera el control de errores pasa lo mismo que en el Caso 1)
for($i=0;$i<$nTotConsultas;$i++){ }else{ } } if($numerror<>0) { echo 'Error Nº '.$numerror.': '.$descrerror.'<BR/><BR/>'.$cErrMsg.'<BR/><BR/>Texto consulta: '.$consulta[$i]; } }
Código
Estoy usando las versiones 7.4 de PHP y 10.5 de MariaDB.
for($i=0;$i<$nTotConsultas;$i++){ }
Quedo a la espera de cualquier sugerencia para solucionar esto.
Gracias.