ciao!
ho creato questa stored procedure:
se la chiami da phpmyadmin, o programmi simili, funziona senza errori.codice:DELIMITER // DROP PROCEDURE IF EXISTS add_brand // CREATE PROCEDURE add_brand( IN id INT, IN nome VARCHAR(25), IN alias VARCHAR(30), IN visibile BOOLEAN ) NO SQL BEGIN IF id = 0 THEN INSERT INTO brands VALUES (NULL, nome, alias, visibile, NOW(), NOW()); SELECT LAST_INSERT_ID() AS last; ELSE UPDATE brands SET brand_nome = nome, brand_alias = alias, brand_visibile = visibile, brand_modifica = NOW() WHERE brand_id = id; SELECT id AS last; END IF; END
poi nel mio controller:
mi restituisce questo:codice:public function add(Request $req) { $data = $req->json()->all(); $mpUtils = new MPUtils(); if (!empty($data)) { try { $res = DB::select('CALL add_brand(?,?,?,?)', array( $data['brand_id'], trim($data['brand_nome']), trim(data['brand_alias']), $data['brand_visibile'] )); return response()->json(array( "res" => "ok", "id" => $res[0]->last, "message" => "Operazione avvenuta con successo!" )); } catch (QueryException $ex) { return response()->json([ 'res' => 'ko', 'message' => 'Errore: ' . $ex->getMessage() ]); } } else { return response()->json(array( "res" => "ko", "message" => "Dati mancanti!" )); } }
ma la cosa bella è che sul db vedo il record aggiunto / modificato.codice:{ "res": "ko", "message": "Errore: SQLSTATE[HY000]: General error: 2053 (SQL: CALL add_brand(201,test,test,0))" }
in sostanza funziona, ma va in eccezione.
è la prima volta che mi capita una cosa del genere.
questo il json che gli passo:
codice:{ "brand_id": 201, "brand_nome": "test", "brand_alias": "test", "brand_visibile": false }

Rispondi quotando
!