ciao!
sinceramente non riesco a capire se il problema è laravel o la stored procedure.
questa la SP:
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
questo il metodo da cui la richiamo:
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!"
));
}
}
come vedete ne richiamo due.
la prima non da problemi, la seconda da questo errore:
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)
ma se poi vado in phpmyadmin e invio CALL up_step_riepilogo(25,1,7,0,0,0,0), funziona senza problemi.
al posto di DB::select ho già provato a mettere insert o update.
non mi sembra ci siano altri errori!