Inserimento di parametri in query SQL

di il
1 risposte

Inserimento di parametri in query SQL

Buongiorno,
ho un problema con l'inserimento in modo dinamico di parametri in una query SQL.

Il mio DB è costituito da più di 200 attributi il cui nome è un intero progressivo (1, 2, 3, ...): tale numero corrisponde a varie sezioni ("Generale", 1; "Altri contenuti", 2; ecc).

Quando rilevo l'esistenza di una sezione vorrei scrivere nell'attributo corrispondente all'interno del db un valore '1', che ne indichi l'esistenza.

Provo ad eseguire la query in questo modo: "INSERT INTO result ("+sezioni1.getNumber()+") values ('1') WHERE name_id LIKE '%"+url_iniziale+"%'"

dove sezioni1.getNumber() è il numero della sezione (quindi l'attributo in cui vorrei andare a scrivere),
ma mi viene restituito l'errore "Exception in thread "main" com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax".

Come posso risolvere? Grazie in anticipo.

1 Risposte

  • Re: Inserimento di parametri in query SQL

    marco_cata ha scritto:


    Provo ad eseguire la query in questo modo: "INSERT INTO result ("+sezioni1[ i].getNumber()+") values ('1') WHERE name_id LIKE '%"+url_iniziale+"%'"
    INSERT non ha la clausola WHERE.
    E poi comunque il primo blocco ( ) dopo INTO nometabella dovrebbe elencare i nomi delle colonne associate ai values forniti appena dopo.

    In ogni caso, in generale, a livello Java sarebbe meglio usare PreparedStatement invece che Statement perché altrimenti dovresti pure preoccuparti di tutte le regole di quoting/escaping dei valori (specialmente stringhe) che differiscono da un DBMS all'altro.

    marco_cata ha scritto:


    Come posso risolvere?
    Il problema qui non è tanto "risolvere" ... ma capire bene prima il SQL basilare.
Devi accedere o registrarti per scrivere nel forum
1 risposte