Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317

    [MySQL] You have an error in your SQL syntax;

    Non dormo da 30h e mi sono scordato pure come mi chiamo, quindi non siate troppo severi:
    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 `key FROM {prefix}zxmhm WHERE 62yls=`3` AND 45jf8<>1 LIMIT 1` at line 1 in query: SELECT 5eo0u key FROM blind_zxmhm WHERE 62yls=%d AND 45jf8<>1 LIMIT 1
    Query:
    codice:
    SELECT 5eo0u as key FROM #__zxmhm WHERE 62yls=%d AND 45jf8<>1 LIMIT 1

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    Quote Originariamente inviata da Zoff
    key è un reserved word, devi metterla tra ` se vuoi usarla comunque come aliasname.
    fosse la prima volta che succede... count, max... con key penso di averle fatte tutte.

    Grazie

  3. #3
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Come bouna norma i nomi delle colonne dovrebbero iniziare con una lettera, non con un numero, comunque si può anche usare un numero come primo carattere, a patto che poi si utilizzino sempre i back ticks per evitare problemi, inoltre "key" è una parola riservata, non penso che tu possa usarla come nome di un campo, magari prova a mettere i back ticks anche attorno a key.

    SELECT `5eo0u` as `key` FROM #__zxmhm WHERE `62yls`=%d AND `45jf8`<>1 LIMIT 1
    Ultima modifica di Alhazred; 15-08-2015 a 12:17

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Come bouna norma i nomi delle colonne dovrebbero iniziare con una lettera, non con un numero, comunque si può anche usare un numero come primo carattere, a patto che poi si utilizzino sempre i back ticks per evitare problemi, inoltre "key" è una parola riservata, non penso che tu possa usarla come nome di un campo, magari prova a mettere i back ticks anche attorno a key.

    SELECT `5eo0u` as `key` FROM #__zxmhm WHERE `62yls`=%d AND `45jf8`<>1 LIMIT 1
    Ciao, i backtips per i nomi delle colonne sono necessari solo durante la creazione della tabella.
    Comunque grazie.

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Hai provato ad usare la query come te l'ho scritta oppure no?
    Continua a non funzionare o lo supponi?

  6. #6
    Quote Originariamente inviata da zacca94 Visualizza il messaggio
    Ciao, i backtips per i nomi delle colonne sono necessari solo durante la creazione della tabella.
    non sono mai necessari se sono nomi permessi. Sono sempre obbligatori se utilizzi nomi riservati destinati a funzioni o statement. Le reserved words sono tante ma sono molte di piu' le parole non riservate. Usa queste e risolverai tutti i problemi

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Hai provato ad usare la query come te l'ho scritta oppure no?
    Continua a non funzionare o lo supponi?
    ciao avevo già risolto con l'intervento di Zoff di un famoso forum di linux.

    Se ti riferisci ai backtips dei nomi delle colonne ti confermo in parte ciò che ho scritto e in parte l'utente piero.mac mi smentisce.

  8. #8
    Quote Originariamente inviata da zacca94 Visualizza il messaggio
    Se ti riferisci ai backtips dei nomi delle colonne ti confermo in parte ciò che ho scritto e in parte l'utente piero.mac mi smentisce.
    I nomi delle colonne sono delle costanti per il database. Quindi devono esserci nomi univoci e poi ci sono le parole riservate del sistema. Puoi usare queste parole riservate per usi diversi dallo scopo previsto da MySql a condizione di indicare a MySql che si tratta di una costante e non di uno statement. E questo lo fai con le backtips. Nulla di piu' e nulla di meno. Ma dato che dovresti usare le backtips sempre ogni volta che ti rivolgi a MySql rimane piu' comodo per chi scrive il programma utilizzare nomi non nella lista delle reserved words....

    sembra facile, e di fatto non e' poi difficile

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    Quote Originariamente inviata da piero.mac Visualizza il messaggio
    I nomi delle colonne sono delle costanti per il database. Quindi devono esserci nomi univoci e poi ci sono le parole riservate del sistema. Puoi usare queste parole riservate per usi diversi dallo scopo previsto da MySql a condizione di indicare a MySql che si tratta di una costante e non di uno statement. E questo lo fai con le backtips. Nulla di piu' e nulla di meno. Ma dato che dovresti usare le backtips sempre ogni volta che ti rivolgi a MySql rimane piu' comodo per chi scrive il programma utilizzare nomi non nella lista delle reserved words....

    sembra facile, e di fatto non e' poi difficile
    ciao grazie per aver dato una ulteriore delucidazione, ma ti eri espresso in maniera eccelsa facendoti capire appieno anche solo con il primo post.

  10. #10

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.