ciao!
sinceramente non riesco a capire se il problema è laravel o la stored procedure.
questa la SP:
questo il metodo da cui la richiamo:codice:DELIMITER // DROP PROCEDURE IF EXISTS up_step_riepilogo // CREATE PROCEDURE up_step_riepilogo( IN lavoro INT, IN step SMALLINT(2), IN da_caricare SMALLINT(6), IN validato INT, IN critico_serio INT, IN critico_non_serio INT, IN non_visionato INT ) NO SQL BEGIN SET @caricati = (SELECT COUNT(*) AS cnt FROM documenti_lavori WHERE docl_lavoro = lavoro AND docl_step = step AND docl_nome != ''); INSERT INTO step_riepilogo VALUES (lavoro, step, da_caricare, @caricati, validato, critico_serio, critico_non_serio, non_visionato, NOW(), NOW()) ON DUPLICATE KEY UPDATE sr_step = step, sr_da_caricare = da_caricare, sr_caricati = @caricati, sr_validato = validato, sr_critico_serio = critico_serio, sr_critico_non_serio = critico_non_serio, sr_non_visionato = non_visionato, sr_modifica = NOW(); END
come vedete ne richiamo due.codice:public function addDocumento(Request $req) { $data = $req->json()->all(); if (!empty($data)) { try { DB::select('CALL add_documento_step(?,?,?,?,?,?,?,?,?,?,?,?,?)', array( $data['docl_id'], $data['docl_lavoro'], $data['docl_step'], $data['docl_numero'], trim($data['docl_nome']), trim($data['docl_tipo']), trim($data['docl_responsabile']), 'files/', $data['docl_gestore'], $data['docl_tutor'], $data['docl_data'], $data['docl_importo'], $data['docl_note'] )); $docStep = new DocStep(); DB::select('CALL up_step_riepilogo(?,?,?,?,?,?,?', array( // $data['docl_lavoro'], $data['docl_step'], $docStep->countDocStep($data['docl_step']), 0, 0, 0, 0 25, 1, 7, 0, 0, 0, 0 )); } catch (QueryException $ex) { return response()->json([ 'res' => 'ko', 'message' => 'Errore: ' . $ex->getMessage() ]); } return response()->json(array( "res" => "ok", "message" => "Documento lavoro aggiunto con successo!" )); } else { return response()->json(array( "res" => "ko", "message" => "Dati mancanti!" )); } }
la prima non da problemi, la seconda da questo errore:
ma se poi vado in phpmyadmin e invio CALL up_step_riepilogo(25,1,7,0,0,0,0), funziona senza problemi.codice:Errore: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '' at line 1 (SQL: CALL up_step_riepilogo(25,1,7,0,0,0,0)
al posto di DB::select ho già provato a mettere insert o update.
non mi sembra ci siano altri errori!

Rispondi quotando