Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    49

    JAVA: Problema sull'istruzione update con database mysql

    Premetto che vi seguo da molto e trovo che questo forum si forse il migliore punto di ritrovo per programmatori, è arrivato per me il momento rivolgermi a voi per risolvere un mio problema:

    praticamente quando utilizzo il Prepared Statemet per fare un update mi da la possibilità di inserire fino a 4 parametri ovvero 4 "?" come ne aggiungo un altro ancora mi da errore di sintassi sql, io nel database ho una tabella con 7 campi USER PASSW NOME COGNOME CITTA ecc...
    esiste un modo per fare l'update di tutto contemporaneamente??

    Ricapitolando il prepared statement per l'update funziona con solo 4 parametri, esiste un altro sistema?

    Grazie in anticipo per il vostro aiuto, sono in preda al panicoo

  2. #2
    Che io sappia (non uso PreparedStatement da una vita, quindi se dico un inesattezza smentitemi pure...) i PreparedStatement non hanno un numero minimo o massimo di parmetri che possono essere inseriti, quindi molto probabilmente è un errore di costruzione di tale oggetto che ti porta a dire questo.
    Prova a postare il codice interessato cosi magari riusciamo ad aiutarti

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    49
    Grazie per la risposta, io sapevo come te che il prepared statement non aveva limiti, ma adesso ho un po di confuzione perchè con 4 parametri mi funziona mentre con 5 o più no

    Ecco il codice che uso e funziona perfettamente:

    PreparedStatement pstmt = c.prepareStatement("UPDATE amministratori SET PASSWORD=?,NOME=?,COGNOME=? WHERE USER=?");

    pstmt.setString(1, paswd);
    pstmt.setString(2, nom);
    pstmt.setString(3, cogn);
    pstmt.setString(4, adminRicerca);
    pstmt.executeUpdate();

    pstmt.close();


    Mentre se uso questo altro codice sotto che differisce solo per l'aggiunta di un altro parametro:


    PreparedStatement pstmt = c.prepareStatement("UPDATE amministratori SET PASSWORD=?,NOME=?,COGNOME=?,E-MAIL=? WHERE USER=?");

    pstmt.setString(1, paswd);
    pstmt.setString(2, nom);
    pstmt.setString(3, cogn);
    pstmt.setString(4, ema);
    pstmt.setString(5, adminRicerca);
    pstmt.executeUpdate();

    pstmt.close();


    Mi da questo errore:

    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorEx ception: 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 '-MAIL='email@prova.it' WHERE USER='admin'' at line 1


    Non riesco a venirne fuori!!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Proverei ad evitare di utilizzare il segno meno nel nome di una colonna o se proprio devi, credo che non ci sia altra soluzione se non quella di "escapare" a mano il nome della colonna, ovvero:
    codice:
    UPDATE ... `E-MAIL` = ?, ...
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    49
    Sei un grande, il problema era proprio questo!! L'sql non riconosceva quel segno meno. Se eri qui con me ti pagavo ristorante pizzeria caffè e tutto il resto!

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    in qualsiasi linguaggio di programmazione, ogni volta che in nome di variabile utilizzi un operatore aritmetico o logico, o vuoi cominciare con una cifra fatti una domanda se sia effettivamente supportato. MySQL ti fa usare il segno meno, ma dopo devi spiegargli che è parte integrante del nome della colonna.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    49
    ottimo consiglio, è un peccato di inesperienza il mio

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.