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

    [Java]Utilizzo di PreparedStatement in MySql

    Ciao,
    qualcuno può aiutarmi?
    Stò facendo un progetto usando Java (servlet e jsp) e MySQL. Stò trattando le query con il PreparedStatement. Nel momento in cui però eseguo una query del seguente tipo:

    codice:
    ps =  con.prepareStatement("ALTER TABLE utenti ADD COLUMN ? VARCHAR(45);");
    ps.setString(1, risposta);
    ps.executeUpdate();
    La query che in realtà mi inserisci è del tipo :
    ALTER TABLE utenti ADD COLUMN 'Nome' VARCHAR(45);

    se risposta valesse Nome, però la query non dovrebbe avere gli apici! Per cui mi vine generato un errore di sintassi di mySql. Qualcuno sa come posso risolvere questo problema?
    Grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    56
    Che io sappia, il metodo setString di PreparedStatement è fatto per il bind dei parametri (non dei nomi dei campi) e quindi aggiunge sempre gli apici.

    Dovresti concatenare anziché usare il bind. A questo punto puoi anche usare Statement:

    codice:
    Statement stmt =  con.createStatement();
    stmt.execute("ALTER TABLE utenti ADD COLUMN " + risposta + " VARCHAR(45);");

  3. #3
    Grazie mille,
    ho provato e adesso funziona!
    Ciao.

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.