Inizio
/
Supporto database
/
Errore SQL 1064: una guida base per la correzione dell'errore

Errore SQL 1064: una guida base per la correzione dell'errore

Hai mai riscontrato un errore SQL 1064 durante il tentativo di eseguire una query? Può essere frustrante, ma non preoccuparti: non sei solo. Questo messaggio di errore contrassegna in genere un errore di sintassi nella query MySQL.

Fortunatamente, ci sono solo una manciata di problemi che causano questo errore. Puoi risolverli in modo efficiente con un po’ di persistenza e una guida adeguata. In questo articolo spiegheremo cos’è l’errore SQL 1064, che cosa lo causa e come risolverlo. Inoltre, imparerai tre consigli per evitarlo in futuro.

Cos’è l’errore SQL 1064?

SQL (Structured Query Language) è un linguaggio di programmazione che gestisce e manipola i database relazionali. Sebbene sia potente, è anche complesso e soggetto a errori. Uno degli errori più comuni riscontrati dagli utenti è il codice di errore MySQL 1064.

Il codice di errore SQL 1064 rappresenta un errore di sintassi SQL. Significa che la query SQL che hai scritto non è valida perché contiene un errore nella sintassi. In altre parole, MySQL non comprende la tua richiesta e restituisce l’errore in risposta.

Probabilmente vedrai il codice di errore SQL 1064 in uno strumento di amministrazione del database come phpMyAdmin o MySQL Workbench. Gli utenti di SiteGround hanno phpMyAdmin a loro disposizione in Site Tools > Sito > MySQL > PHPMYADMIN > ACCEDI A PHPMYADMIN.

Come accedere a phpMyAdmin dalla sezione MySQL in Site Tools

Di seguito, puoi vedere uno screenshot di phpMyAdmin che produce l’errore.

Errore SQL 1064 in phpMyAdmin

Ci sono diverse varianti del messaggio di errore:

  • errore 1064 (42000) – hai un errore nella sintassi SQL
  • #1064 – hai un errore nella tua sintassi SQL

Questo messaggio di errore può sembrare intimidatorio, specialmente se non conosci SQL. Tuttavia, è essenziale ricordare che gli errori di sintassi sono comuni e, con un po’ di pratica, puoi imparare ad evitarli.

Comprensione della sintassi SQL

La sintassi SQL è un aspetto cruciale della gestione del database. È possibile creare, modificare e recuperare dati dai database utilizzando comandi SQL correttamente strutturati.

La sintassi SQL è un insieme di regole che determinano la struttura dei comandi utilizzati per interagire con un database. I comandi SQL includono i seguenti elementi:

  • operatori,
  • clausole,
  • espressioni,
  • parole chiave.

La sintassi SQL è simile a molti altri linguaggi di programmazione. Sebbene le parole chiave SQL non facciano distinzione tra maiuscole e minuscole, scriverle in maiuscolo è una pratica standard. Le istruzioni SQL sono in genere separate da punto e virgola.

Familiarizzare con il MySQL Reference Manual è essenziale per lavorare con un database MySQL. Otterrai una migliore comprensione della sintassi, che a sua volta ti aiuterà a evitare errori di sintassi nelle query SQL.

Quali sono le cause dell’errore SQL 1064?

Come suggerisce la descrizione, il motivo principale dell’errore SQL 1064 è un errore di sintassi nel comando. Tuttavia, anche altri problemi possono attivare l’errore. Di seguito troverai un elenco di quelli più comuni.

  • Errori di sintassi – La causa più comune dell’errore SQL 1064. Gli errori di sintassi si verificano quando l’istruzione SQL è scritta male o non rispetta le regole di sintassi stabilite.
  • Comandi obsoleti – Utilizzo di comandi obsoleti e deprecati o comandi non più supportati nella versione corrente di SQL.
  • Uso di parole riservate fuori contesto – Le parole riservate sono parole già utilizzate dal linguaggio SQL per scopi specifici. Esempi sono SELECT, INSERT, UPDATE, ALTER, DELETE, ecc. Se usi parole riservate per uno scopo fuori del loro uso designato nel tuo codice SQL, incontrerai l’errore SQL 1064.
  • Tipi di dati non corretti – Utilizzo di tipi di dati non corretti nell’istruzione SQL. L’inserimento di testo in un campo numerico è un esempio tipico.
  • Dati mancanti – Se tenti di inserire o aggiornare i dati in un database mancante di un campo obbligatorio, il risultato potrebbe essere un errore SQL 1064.

Come correggere l’errore SQL 1064

L’errore di sintassi SQL può provenire da vari problemi. Ecco un ordine che puoi seguire per trovare la fonte del problema e risolverlo.

  • Passo 1.Leggi attentamente il messaggio di errore

    Quando incontri un errore SQL 1064, leggi attentamente il messaggio di errore. Indicherà quale riga o sezione dell’istruzione SQL lo contiene.

    Di seguito è riportato un esempio di phpMyAdmin che produce l’errore e indica quale parte è problematica.

    Controlla il messaggio per l'errore SQL 1064
  • Passo 2.Controlla la tua query MySQL per errori di sintassi

    Una volta identificata la parte dell’istruzione SQL che causa l’errore, controlla il codice SQL per eventuali errori di sintassi. Cerca parentesi, virgole o operatori errati, clausole, espressioni o parole chiave.

    L’esempio del passaggio precedente mostra che la parte problematica del comando SQL è:

    ''WERE `fpj_options`.`option_id` = 1' at line 1

    Guardando da vicino la riga, diventa chiaro che il problema deriva dalla clausola “WERE” errata. La sua forma corretta è “WHERE” quindi la “H” mancante ha attivato l’errore. La correzione della clausola determina una corretta esecuzione del comando SQL.

    Esecuzione riuscita della query SQL dopo aver corretto un errore di sintassi
  • Passo 3.Controlla se stai usando parole riservate

    Se stai usando MySQL e ricevi un messaggio di errore con il codice 1064, è possibile che tu abbia usato parole che MySQL considera speciali. Queste sono chiamate “parole riservate” e gli esempi sono ALTER, TABLE, SELECT, ecc.

    Le parole riservate hanno significati specifici in MySQL. Non puoi usarli come nomi per tabelle, colonne o altre parti di un database MySQL senza causare errori. Di seguito è riportato un esempio di errore di sintassi SQL causato dall’utilizzo della parola riservata alter come nome di tabella.

    Errore SQL 1064 causato dall'utilizzo della parola riservata "alter"

    Per evitare questo errore, controlla eventuali parole riservate utilizzate fuori posto nelle tue query. Puoi trovare un elenco completo di queste parole nel manuale di MySQL. Se usi una parola riservata, cambiala con qualcos’altro.

    Se preferisci usare la parola riservata, accompagnala con i backtick (`). Questi backtick istruiranno MySQL a trattarla come un nome e non come una parola riservata.

    Correzione dell'errore SQL 1064 utilizzando i backtick sulla parola riservata "alter"
  • Passo 4.Sostituisci comandi obsoleti

    MySQL ha subito diverse revisioni e modifiche nel corso degli anni. Alcune di queste modifiche hanno influito sulle regole di sintassi SQL. Molti dei comandi sono stati abbandonati e sostituiti da nuovi.

    Puoi controllare la versione del server MySQL che stai utilizzando in phpMyAdmin. Per ulteriori informazioni, leggi questa guida su come controllare la versione di MySQL sul server che ospita il tuo account.

    Se hai identificato che stai utilizzando comandi obsoleti o non più supportati, sostituiscili con comandi aggiornati.

    Per modificare i comandi obsoleti nei file, puoi risparmiare tempo utilizzando gli strumenti Trova e sostituisci nella tua Gestione File. Possono sostituire tutti i comandi che causano il problema con le nuove versioni corrette in una volta sola.

    La Gestione File in Site Tools offre questa funzionalità per gli utenti SiteGround. Apri il file che desideri modificare e clicca il pulsante Sostituisci.

    Funzione "Sostituisci" in Gestione File per sostituire i comandi obsoleti

    Nel campo Find, digita il comando obsoleto che deve essere aggiornato. In Replace, scrivi il comando aggiornato per sostituire quello vecchio. Lo strumento riscriverà tutte le istanze del comando obsoleto con quello nuovo.

    IMPORTANTE! Il nuovo comando SQL potrebbe non funzionare come previsto. Prima di apportare modifiche al file, crea un backup del sito web. Ti permetterà di ripristinare rapidamente il tuo sito web nel caso in cui le modifiche lo influiscano negativamente.
  • Passo 5.Verifica se stai utilizzando il tipo di dati corretto

    I database SQL sono progettati per memorizzare vari tipi di dati. Ognuno ha il suo formato specifico e i suoi requisiti di archiviazione. Ad esempio, un valore numerico richiede una quantità di spazio di archiviazione diversa rispetto a un valore stringa.

    Se stai tentando di inserire dati di un tipo in una colonna di un altro tipo, riscontrerai l’errore SQL 1064. Questo messaggio di errore è solitamente accompagnato da “Hai un errore nella sintassi SQL; controlla il manuale che corrisponde alla versione del tuo server MySQL per la sintassi giusta da usare vicino a …”.

    Ad esempio, se inserisci una stringa di testo in una colonna definita come valore numerico, otterrai l’errore SQL 1064.

    Tipo di dati errato che causa l'errore SQL 1064

    Per evitare questo errore del database, assicurati che i tipi di dati delle colonne nel tuo codice SQL corrispondano ai tipi di dati dei valori che stai inserendo.

  • Passo 6.Aggiungi i dati mancanti

    Un’altra causa comune di errore SQL 1064 è la mancanza di dati. Ad esempio, se provi ad inserire dati in una tabella con campi obbligatori ma lasci alcuni campi vuoti, otterrai un errore SQL 1064.

    Per correggere questo errore, assicurati di aver fornito tutti i dati richiesti. Potrebbe essere necessario aggiungere manualmente i dati mancanti.

    Inoltre, l’errore può apparire durante l’importazione del database da un file di backup danneggiato. Crea un nuovo backup del tuo database originale e importalo sul nuovo server.

    Gli utenti di SiteGround possono usufruire dello strumento Importa il dump del database, progettato per importare database più grandi.

    Usa "Importa il dump del database" in Site Tools per importare database di grandi dimensioni

    Se non sei sicuro dei campi obbligatori, controlla la definizione della tabella o consulta l’amministratore del database.

  • Passo 7.Richiedi assistenza

  • Se hai provato tutti i passaggi precedenti e non riesci ancora a correggere l’errore SQL 1064, prova a chiedere aiuto.

    Puoi contattare l’amministratore del database o consultare un forum online o una community dedicata alla programmazione SQL.

    Molte risorse online sono disponibili sia per i principianti che per i programmatori esperti e puoi trovare le risposte alla maggior parte delle domande relative a SQL. Puoi trovare informazioni utili nel forum ufficiale di MySQL, dove gli utenti si aiutano a vicenda con problemi più elaborati e condividono le loro esperienze.

3 suggerimenti per evitare l’errore SQL 1064

È possibile prevenire l’errore SQL 1064 seguendo buone pratiche che riducono la possibilità di commettere un errore di sintassi.

Utilizzare un validatore SQL per rilevare un errore di sintassi

Un validatore SQL è uno strumento che controlla la sintassi del tuo codice SQL e identifica gli errori. Usarlo ti consente di rilevare e correggere gli errori prima di eseguire il codice.

EverSQL è uno degli strumenti di convalida SQL gratuiti più popolari. Invia la tua query SQL e premi il pulsante Validate SQL Syntax. Il controllore ispezionerà il codice e indicherà potenziali errori nelle query MySQL.

Validatore SQL EverSQL

Usa alias SQL

Gli alias SQL consentono di assegnare un nome temporaneo a una tabella o ad una colonna. Usando gli alias, puoi semplificare il tuo codice SQL ed evitare errori di sintassi causati da errori di battitura o ambiguità. Nota che l’alias SQL rimane attivo solo per la durata della query SQL.

La clausola AS abilita un alias per una tabella o una colonna. Per assegnare un alias per una colonna, utilizza il seguente modello.

SELECT column_name AS alias_name 
FROM table_name;

Per assegnare un alias a una tabella, utilizza il formato seguente.

SELECT column_name(s)
FROM table_name AS alias_name;

Sostituisci column_name e table_name con i nomi esistenti nel tuo database e alias_name – con l’alias personalizzato che hai scelto.

Scomponi le istruzioni SQL

Scomporre istruzioni SQL complesse in parti più piccole e gestibili può aiutarti a identificare facilmente gli errori. Testando parti più piccole del tuo codice SQL, puoi isolare e correggere gli errori prima che causino problemi significativi.

Per concludere

SQL Error 1064 è un errore comune riscontrato dai programmatori SQL. Errori di sintassi, comandi obsoleti, tipi di dati non corretti, dati mancanti o altri errori nel codice SQL di solito causano questo errore.

Seguendo i passaggi descritti in questa guida e implementando i suggerimenti per prevenire l’errore MySQL 1064, puoi evitarlo e assicurarti che il tuo codice SQL funzioni senza intoppi. Ricordati di controllare sempre gli errori di sintassi e di chiedere assistenza quando necessario.

Condividi questo articolo