Visualizzazione risultati 1 fino 7 di 7

Discussione: Errore query update

  1. #1
    Guest

    Predefinito Errore query update

    Non riesco a capire l'errore in questa query:

    UPDATE costruzioni SET case = case + 1 WHERE id_paese = 3

    Ho provato anche mettendo gli apici in ogni nome di campo, ma mi esce questo errore:

    #1064 - 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 'case = case + 1 WHERE id_paese = 3' at line 1

    Ma la cosa più strana è che quest'altra query funziona perfettamente:

    UPDATE paesi SET costruzione = 'case' WHERE id_paese = 3

    Cos'è che sbaglio?

  2. #2
    L'avatar di Luffio
    Luffio non è connesso Utente attivo
    Data registrazione
    02-07-2006
    Messaggi
    439

    Predefinito

    Gli apici per i campi non servono. La sintassi è esatta. Il controllo che puoi fare è che esista la tabella 'costruzioni', che esista il campo 'case' nella suddetta tabella e che il valore di 'case' sia numerico.
    Luffio Web Site, Luffio's personal site
    Age Of Empires GIF, sito per la creazione di GIF animate di Age of Empires
    Clan italiano di Age of Empires The Conquerors, uno dei più vecchi ancora attivi

  3. #3
    Guest

    Predefinito

    La tabella 'costruzioni' esiste, il campo 'case' pure ed è di tipo INT UNSIGNED NOT NULL con valore predefinito uguale a 2...

  4. #4
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Se provi a fare questa query ti dà errore?
    Codice:
    UPDATE costruzioni SET case = 3 WHERE id_paese = 3
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da funcool
    Se provi a fare questa query ti dà errore?
    Codice:
    UPDATE costruzioni SET case = 3 WHERE id_paese = 3
    Si, nuovamente questo:

    #1064 - 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 'case = 3 WHERE id_paese = 3' at line 1


    EDIT: Forse ho capito quale può essere il problema. Forse la parola "case" è una keyword dell'sql, infatti nel messaggio dell'errore è colorata in questo modo:




    RI-EDIT: Ho cambiato direttamente il nome in 'casa' e adesso la query

    UPDATE costruzioni SET casa = casa + 1 WHERE id_paese = 3

    funziona perfettamente!


    FunCool: Non scrivere dei messaggi consecutivi, utilizza il tasto Edita.
    Ultima modifica di funcool : 27-04-2007 alle ore 11.42.10

  6. #6
    L'avatar di Luffio
    Luffio non è connesso Utente attivo
    Data registrazione
    02-07-2006
    Messaggi
    439

    Predefinito

    ah già è vero!
    Puoi disattivare lo script se possono accedere esterni, fare un backup della tabella, distruggerla e ricrearla cambiando nome al campo. C'è uno script veloce per cambiare nome a un campo?
    Luffio Web Site, Luffio's personal site
    Age Of Empires GIF, sito per la creazione di GIF animate di Age of Empires
    Clan italiano di Age of Empires The Conquerors, uno dei più vecchi ancora attivi

  7. #7
    Guest

    Predefinito

    ciao, ho avuto anch'io lo stesso problema

    UPDATE Utenti SET Email = in_vit_we_trust@hotmail.com WHERE Nome = Emanuel

    Messaggio di MySQL: Documentazione
    #1064 - 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 '@hotmail.com WHERE Nome=Emanuel' at line 1
    solo nel mio caso non ci sono parole chiave....

    allora ho provato, inserendo la query dal sito tramite php a mettere:
    UPDATE Utenti SET Email = 'in_vit_we_trust@hotmail.com' WHERE Nome = 'Emanuel'

    e non funzionava...
    allora solo andato su PHPmyAdmin e rimesso:
    UPDATE Utenti SET Email = 'in_vit_we_trust@hotmail.com' WHERE Nome = 'Emanuel'

    e non mi dava errori...........misteri di programmazione

    edit: nessuno che mi dia una specie di spiegazione?
    Ultima modifica di dreadnaut : 21-08-2007 alle ore 23.20.15

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •