Comunidad de diseño web y desarrollo en internet online

como Realizar mas de 1 Insert en mysql con PHP?

Citar            
MensajeEscrito el 16 Sep 2015 11:18 pm
Necesito realizar mas de un insert con php y si alguno de los insert da error no guardar los cambios.
Hasta ahora he realizado esto con BEGIN, ROLLBACK , COMMIT pero me dice guardado con suceso pero en realidad no a insertado nada. Desde ya Gracias.

Código PHP :

$error = 0; //variable para detectar error
      //mysqli_query($con,"BEGIN"); // Inicio de Transacción
      while ($resultBuscaParticipante = mysqli_fetch_array($queryBuscaParticipante)) {
            $Participante_IdParticipante = $resultBuscaParticipante['Participante_idParticipante'];
         $sql = utf8_decode("insert into frequencia (Oficina_IdOficina, Participante_IdParticipante,dataFrequencia) values ('$Oficina_idOficina','$Participante_IdParticipante','$dataFrequencia');");
         $result = mysqli_query($con, $sql);
         if(!$result){
            $error = true;
         }
      }
      if($error) {
         //mysqli_query($CON,"ROLLBACK"); //se houver algum erro em algum dos insert, volta atrás sem salvar nenhum
         $notificacion = ' ao cadastrar!';
            setMensaje('gravar', $notificacion, 'error');
         } else {
         //mysqli_query($CON,"COMMIT"); //se nao houver nenhum erro salva as modificacoes
         $notificacion = ' Sucesso ao cadastrar!';
            setMensaje('gravar', $notificacion, 'sucesso');
      }


Sin el BEGIN, ROLLBACK y COMMIT si ingresa los datos a la base de datos.

Por nattadsa

5 de clabLevel



 

chrome
Citar            
MensajeEscrito el 17 Sep 2015 12:54 pm
Estás confundido. Para iniciar una transacción es con el verbo "START TRANSACTION". El verbo "BEGIN" se usa dentro de un procedimiento almacenado. Te debe estar devolviendo un error que no ves.

Por DriverOp

Claber

2510 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.