Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    MySql...bug o mio errore?

    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!

  2. #2

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.