ciao!
sto cercando di usare le transaction in laravel.
seguendo alcune giude ho fatto così:
nella query dentro al foreach c'è volutamente un errore.codice:DB::beginTransaction(); try { // TESTATE = add_orfo $forn = $data['testata']['co_fornitore']; $bolla = trim($data['testata']['co_bolla']); $dd = date_format(date_create($data['testata']['co_data']), 'Y-m-d H:i:s'); $note = trim($data['testata']['co_note']); $dd2 = date_format(date_create($data['testata']['co_data']), 'Ymd'); DB::insert('CALL add_orfo(?,?,?,?,?)', array($forn, $bolla, $note, $dd, $dd2)); // RIGHE = add $righe = $data['righe']; foreach ($righe as $rr) { $caDescr = trim($rr['co_descrizione']); $caDizionario = $rr['co_dizionario']; $caReparto = $rr['co_reparto']; $caBolla = $bolla; $caUtente = ''; $caQta = $rr['co_qta']; $caStato = ''; $caPrezzo = 0; $caPrezzoAcq = $rr['co_prezzo']; $caOrd = 0; $caStag = ''; $res = DB::select('CALL add_articolo_gest(?,?,?,?,?,?,?,?,?,)', array( 0, $caDescr, $forn, $caReparto, $caDizionario, $caPrezzo, $caPrezzoAcq, 21, 0, $caStag )); var_dump($res); } DB::commit(); } catch (QueryException $ex) { DB::rollback(); return response()->json([ 'res' => 'ko', 'message' => 'Errore: ' . $ex->getMessage() ]); }
l'eccezione viene cattirata, ma il rollback non viene eseguito.
nel senso che il record creato nella prima istruzione rimane nella tabella.
dove sto sbagliando??

Rispondi quotando