Ciao,
tramite il PHP eseguo un ciclo FOR. Ad incremento eseguo una chiamata ad una Stored Procedure, passando dei parametri per eseguire una query. Praticamente gli passo un dato e la Stored Procedure controlla se il dato già esiste in una tabella, se non esiste lo inserisce altrimenti no.

Il problema è che se nei dati che passo, appena uno è già presente nella tabella, tutti quelli dopo non li inserisce anche se non sono presenti.

Da cosa può dipendere?

Il codice della Stored Procedure è il seguente:

Codice PHP:
BEGIN
/*Variabile nella quale verr? inserito il valore del dato da cercare*/
DECLARE dato_cerco TEXT;
/*Variabile nella quale verr? inserito il valore della tabella nella quale effettuare la ricerca*/
DECLARE tabella_cerco VARCHAR(50);
/*Variabile nella quale verr? inserito il valore del campo nel quale effettuare la ricerca*/
DECLARE campo_cerco VARCHAR(50);
DECLARE 
QRY TEXT;
DECLARE 
_ID VARCHAR(50);
DECLARE 
campo_controllo VARCHAR(50);
DECLARE 
valore_controllo VARCHAR(50);
/*Ricavo il valore passato come input*/
    
SET dato_cerco dato;
    
SET tabella_cerco tabella;
    
SET campo_cerco campo;
    
SET valore_controllo 'no';
    
SET campo_controllo 'controllo';
    
/*Preparo ed eseguo la query*/
 #   SET @QRY = CONCAT('SELECT SQL_NO_CACHE id  FROM ',tabella_cerco,' WHERE ',campo_cerco,' = ''',dato_cerco,''' INTO @_ID');
    #       PREPARE SSQLTEXT FROM @QRY;
       #    EXECUTE SSQLTEXT ;
          # DEALLOCATE PREPARE SSQLTEXT;

SELECT id FROM controll_pagine WHERE pagina dato_cerco INTO @_ID;

IF  (@
_ID IS NULLTHEN
        SET 
@QRY CONCAT('INSERT INTO ',tabella_cerco,' (',campo_cerco,',',campo_controllo,') VALUES (''',dato_cerco,''',''',valore_controllo,''')');
        
PREPARE SSQLTEXT FROM @QRY;
        
EXECUTE SSQLTEXT ;
        
DEALLOCATE PREPARE SSQLTEXT;
     
END IF;
END 
Grazie!