Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631

    Parameter index out of range

    ciao ho questo problema con la sintassi di mysql
    in pratica da java creo una stringa di testo che poi sarebbe la query:

    codice:
    ""INSERT INTO 'database' (nome,cognome)"+
    	   "VALUES ('?','?','?')";
    però mi esce come errore
    codice:
     Parameter index out of range (1 > number of parameters, which is 0).
    nel mio database ho in pratica il campo id con chiava primaria che è di default, e poi i campi nome e cognome.
    Sapreste quindi questo problema.
    Grazie
    quando il diavolo ti accarezza è perchè vuole la tua anima

  2. #2
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    gli apici prima e dopo gli ? non li mettere, se ne occupa il PreparedStatement
    e poi dichiari due campi ma ne specifichi tre nel values
    mettine due

  3. #3
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631
    ma senza apici ho già provato ma mi esce quest'altro errore

    codice:
     You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''database' (nome,cognome)VALUES ('pippo ','cappuccio ')' at line 1
    quando il diavolo ti accarezza è perchè vuole la tua anima

  4. #4
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    magari vuole il nome della tabella senza apici

  5. #5
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631
    provato ma nada de nada, cmq ho visto nei vari forum,
    è un problema ricorrente, ma nn si riesce a capire che cavolo è
    quando il diavolo ti accarezza è perchè vuole la tua anima

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Come ti è stato detto, hai provato a specificare il numero di parametri corretto? Tu dichiari la tabella come avente 2 soli campi, ma ne specifichi 3...
    codice:
    "INSERT INTO database(nome,cognome) VALUES (? ,?, ?)";   // Sottolineato ERRORE!
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it L'avatar di gax80
    Registrato dal
    May 2006
    Messaggi
    631
    si avevo già cambiato in
    codice:
    "INSERT INTO 'database' (nome,cognome)"+
    		     "VALUES (?,?)";
    ma dà sempre quel dannato errore
    quando il diavolo ti accarezza è perchè vuole la tua anima

  8. #8
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    scusa ma a me sembra una cosa facile
    codice:
    String q = "INSERT INTO database (nome,cognome) VALUES (?,?)";
    PreparedStatememt pst = conn.prepareStatement(q);
    pst.setString(1, "carlo");
    pst.setString(2, "rossi");
    l'unico dubbio che rimane è sul nome della tabella: sicuro che mysql permetta il nome database?
    per il resto questo deve funzionare

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Non hai tolto gli apici dal nome della tabella... poi "database" è una parola chiave riservata... se non erro.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    La documentazione del mysql recita:

    An identifier may be quoted or unquoted. If an identifier is a reserved word or contains special characters, you must quote it whenever you refer to it.
    [...]
    The identifier quote character is the backtick (“`”)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.