Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    366

    Error in SQL Syntax: Non trovo l'errore

    Ciao. Sto facendo alcune prove con un databse, ma quando effettuo alcune query mi viene restituito errore.

    La stringa che effettua la query è:

    codice:
    query("UPDATE iscrizioni SET '".$matricola."' = 'si' WHERE 'COD'=".$cod);
    l'errore restituito è:
    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 ''805710' =  'si' WHERE 'COD'=1' at line 1
    Ho provato anche a modificare la tabella direttamente da phpmyadmin, e la sinstassi che mi consiglia è:

    codice:
    UPDATE  `db_name`.`iscrizioni`  SET  `805710`  =  'si' WHERE  `iscrizioni`.`COD`  =1;
    Variabili a parte, non mi sembra tanto diversa. Certo, dopo il comando WHERE viene indicato il nome della tabella. Ma in altre query, andate a buon fine, che ho fatto non l'ho inserito. Dovrebbe quindi essere opzionale.

    Riuscite a vedere un errore voi?

    Grazie!

  2. #2
    Devi scrivere

    query("UPDATE iscrizioni SET matricola = 'si' WHERE 'COD'=".$cod);

    supponendo che nella tabella iscrizioni hai il campo matricola che si chiama matricola
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    366
    no, nella tabella iscrizioni ho tot campi con il numero di matricola. Io ho una variabile col numero di matricola (che è anche il nome del relativo campo nella tabella) e vorrei impostare il valore di quel campo (il cui nome/numero è contenuto nella variabile $matricola

    Spero di essermi spiegato e non aver fatto confusione

  4. #4
    qui
    'COD'=".$cod chiudi il doppio apice prima della fine della query o sbaglio?
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    366
    si, perchè poi devo concatenargli il valore della variabile $cod

  6. #6
    Quote Originariamente inviata da lordalbert Visualizza il messaggio
    si, perchè poi devo concatenargli il valore della variabile $cod
    ma se chiudi il doppio apice per lui la query si conclude li.
    Non si può risolvere un problema usando lo stesso modo di pensare che ha creato quel problema.
    Albert Einstein

    Siate Affamati, siate Folli, siate Onesti e siate Generosi

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Quote Originariamente inviata da lordalbert Visualizza il messaggio
    Ciao. Sto facendo alcune prove con un databse, ma quando effettuo alcune query mi viene restituito errore.

    La stringa che effettua la query è:

    codice:
    query("UPDATE iscrizioni SET '".$matricola."' = 'si' WHERE 'COD'=".$cod);
    l'errore restituito è:
    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 ''805710' =  'si' WHERE 'COD'=1' at line 1
    Ho provato anche a modificare la tabella direttamente da phpmyadmin, e la sinstassi che mi consiglia è:

    codice:
    UPDATE  `db_name`.`iscrizioni`  SET  `805710`  =  'si' WHERE  `iscrizioni`.`COD`  =1;
    Variabili a parte, non mi sembra tanto diversa. Certo, dopo il comando WHERE viene indicato il nome della tabella. Ma in altre query, andate a buon fine, che ho fatto non l'ho inserito. Dovrebbe quindi essere opzionale.

    Riuscite a vedere un errore voi?

    Grazie!
    L'update si aspetta che assegni un valore ad un campo. Il tuo update tenta di assegnare a un valore un valore e questo non puo' funzionare. In altre parole 805710 non è un campo della tua tabella e quindi non puoi assegnarli un valore.
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    366
    Quote Originariamente inviata da badaze Visualizza il messaggio
    L'update si aspetta che assegni un valore ad un campo. Il tuo update tenta di assegnare a un valore un valore e questo non puo' funzionare. In altre parole 805710 non è un campo della tua tabella e quindi non puoi assegnarli un valore.

    In realtà si. E' un campo della mia tabella.

  9. #9

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2004
    Messaggi
    366
    E' bastato sostituire le ' di $matricola con le ` e ora funziona (come del resto suggerito dalla stringa di phpmyadmin

    Così:
    codice:
    query("UPDATE iscrizioni SET `".$matricola."` = 'si' WHERE 'COD'=".$cod);
    Grazie!

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.