Erreur SQL 1064 : Guide du novice pour réparer l'erreur
Table des matières
Avez-vous déjà rencontré une erreur SQL 1064 en essayant d’exécuter une requête ? Cela peut être frustrant, mais ne vous inquiétez pas, vous n’êtes pas seul. Ce message d’erreur marque généralement une erreur de syntaxe dans votre requête MySQL.
Heureusement, seule une poignée de problèmes déclenchent cette erreur. Vous pouvez les résoudre efficacement avec un peu de persévérance et des conseils appropriés. Dans cet article, nous expliquerons ce qu’est l’erreur SQL 1064, ses causes et comment la résoudre. De plus, vous apprendrez trois conseils pour l’éviter à l’avenir.
Vous verrez probablement le code d’erreur SQL 1064 dans un outil d’administration de base de données comme phpMyAdmin ou MySQL Workbench. Les utilisateurs de SiteGround ont phpMyAdmin à leur disposition dans Site Tools > Site > MySQL > PHPMYADMIN > ACCÉDER À PHPMYADMIN.
Ci-dessous, vous pouvez voir une capture d’écran de phpMyAdmin produisant l’erreur.
Il existe plusieurs variantes du message d’erreur :
- erreur 1064 (42000) : vous avez une erreur dans votre syntaxe SQL
- #1064 – vous avez une erreur dans votre syntaxe SQL
Ce message d’erreur semble décourageant, surtout si vous êtes novice en matière de SQL. Cependant, il est essentiel de se rappeler que les erreurs de syntaxe sont fréquentes et qu’avec un peu de pratique, vous pouvez apprendre à les éviter.
Comprendre la syntaxe SQL
La syntaxe SQL est un aspect crucial de la gestion de bases de données. Vous pouvez créer, modifier et récupérer des données à partir de bases de données à l’aide de commandes SQL correctement structurées.
La syntaxe SQL est un ensemble de règles qui déterminent la structure des commandes utilisées pour interagir avec une base de données. Les commandes SQL incluent les éléments suivants :
- opérateurs,
- clauses,
- expressions,
- mots clés.
La syntaxe SQL est similaire à celle de nombreux autres langages de programmation. Bien que les mots-clés SQL ne soient pas sensibles à la casse, leur écriture en majuscules est une pratique courante. Les instructions SQL sont généralement séparées par des points-virgules.
Se familiariser avec le manuel de référence MySQL est essentiel pour travailler avec une base de données MySQL. Vous obtiendrez une meilleure compréhension de la syntaxe, ce qui vous aidera à éviter les erreurs de syntaxe dans les requêtes SQL.
Quelles sont les causes de l’erreur SQL 1064 ?
Comme le suggère la description, la raison principale de l’erreur SQL 1064 est une erreur de syntaxe dans votre commande. Cependant, d’autres problèmes peuvent également déclencher l’erreur. Ci-dessous, vous trouverez une liste des plus courants.
- Erreurs de syntaxe – Cause la plus courante de l’erreur SQL 1064. Des erreurs de syntaxe se produisent lorsque l’instruction SQL est mal écrite ou enfreint les règles de syntaxe établies.
- Commandes obsolètes – Utilisation de commandes obsolètes et obsolètes ou de commandes qui ne sont plus prises en charge dans la version actuelle de SQL.
- Utiliser des mots réservés hors contexte – Les mots réservés sont des mots déjà utilisés par le langage SQL à des fins spécifiques. Les exemples sont SELECT, INSERT, UPDATE, ALTER, DELETE, etc. Si vous utilisez des mots réservés dans un but autre que leur utilisation prévue dans votre code SQL, vous rencontrerez l’erreur SQL 1064.
- Types de données incorrects – Utilisation de types de données incorrects dans l’instruction SQL. L’insertion de texte dans un champ numérique est un exemple typique.
- Données manquantes – Si vous essayez d’insérer ou de mettre à jour des données dans une base de données sans un champ obligatoire, le résultat pourrait être une erreur SQL 1064.
Comment réparer l’erreur SQL 1064
L’erreur de syntaxe SQL peut avoir différentes origines. Voici un ordre à suivre pour trouver la source du problème et le résoudre.
-
Étape 1. Lisez attentivement le message d’erreur
Lorsque vous rencontrez une erreur SQL 1064, lisez attentivement le message d’erreur. Il indiquera quelle ligne ou section de l’instruction SQL contient une erreur.
Vous trouverez ci-dessous un exemple de phpMyAdmin produisant l’erreur et indiquant quelle partie pose problème.
-
Étape 2. Vérifiez les erreurs de syntaxe dans votre requête MySQL
Une fois que vous avez identifié la partie de l’instruction SQL à l’origine de l’erreur, vérifiez le code SQL pour détecter les erreurs de syntaxe. Recherchez les crochets, les virgules manquantes ou les opérateurs, clauses, expressions ou mots-clés mal orthographiés.
L’exemple de l’étape précédente montre que la partie problématique de la commande SQL est :
''WERE `fpj_options`.`option_id` = 1' at line 1
En regardant attentivement la ligne, il devient clair que le problème vient de la clause « WERE » mal orthographiée. Sa forme correcte est « WHERE » donc le « H » manquant a déclenché l’erreur. La correction de la clause entraîne une exécution réussie de la commande SQL.
-
Étape 3. Vérifiez si vous utilisez des mots réservés
Si vous utilisez MySQL et recevez un message d’erreur avec le code 1064, c’est peut-être parce que vous avez utilisé des mots que MySQL considère comme spéciaux. Ceux-ci sont appelés “mots réservés” et des exemples sont ALTER, TABLE, SELECT, etc.
Les mots réservés ont des significations spécifiques dans MySQL. Vous ne pouvez pas les utiliser comme noms de tables, de colonnes ou d’autres parties d’une base de données MySQL sans provoquer d’erreurs. Vous trouverez ci-dessous un exemple d’erreur de syntaxe SQL provoquée par l’utilisation du mot réservé alter comme nom de table.
Pour éviter cette erreur, recherchez les mots réservés utilisés hors de propos dans vos requêtes. Vous pouvez trouver une liste complète de ces mots dans le manuel MySQL. Si vous utilisez un mot réservé, remplacez-le par autre chose.
Si vous préférez utiliser le mot réservé, entourez-le de backticks (`). Ces backticks indiqueront à MySQL de le traiter comme un nom et non comme un mot réservé.
-
Étape 4. Remplacer les commandes obsolètes
MySQL a subi plusieurs révisions et modifications au fil des ans. Certaines de ces modifications ont affecté les règles de syntaxe SQL. De nombreuses commandes ont été abandonnées et remplacées par de nouvelles.
Vous pouvez vérifier la version du serveur MySQL que vous utilisez dans phpMyAdmin. Pour plus d’informations, lisez ce guide sur comment vérifier la version MySQL sur le serveur hébergeant votre compte.
Si vous avez constaté que vous utilisez des commandes obsolètes ou qui ne sont plus prises en charge, remplacez-les par des commandes à jour.
Pour modifier des commandes obsolètes dans des fichiers, vous pouvez gagner du temps en utilisant les outils de recherche et de remplacement dans votre gestionnaire de fichiers. Ils peuvent remplacer toutes les commandes à l’origine du problème par les nouvelles versions correctes en une seule fois.
Le Gestionnaire de fichiers dans Site Tools offre cette fonctionnalité aux utilisateurs de SiteGround. Ouvrez le fichier que vous souhaitez modifier et appuyez sur le bouton Remplacer.
Dans le champ Find, saisissez la commande obsolète qui doit être mise à jour. Dans Replace, écrivez la commande mise à jour pour remplacer l’ancienne. L’outil réécrira toutes les instances de la commande obsolète avec la nouvelle.
-
Étape 5. Vérifiez si vous utilisez le bon type de données
Les bases de données SQL sont conçues pour stocker différents types de données. Chacun a son propre format et ses propres exigences de stockage. Par exemple, une valeur numérique nécessite une quantité d’espace de stockage différente de celle d’une valeur de chaîne.
Si vous essayez d’insérer des données d’un type dans une colonne d’un autre type, vous rencontrerez l’erreur SQL 1064. Ce message d’erreur est généralement accompagné de “Vous avez une erreur dans votre syntaxe SQL ; vérifiez la manuel qui correspond à la version de votre serveur MySQL pour connaître la bonne syntaxe à utiliser près de…”.
Par exemple, si vous insérez une chaîne de texte dans une colonne définie comme valeur numérique, vous obtiendrez l’erreur SQL 1064.
Pour éviter cette erreur de base de données, assurez-vous que les types de données des colonnes dans votre code SQL correspondent aux types de données des valeurs que vous insérez.
-
Étape 6. Ajouter des données manquantes
Une autre cause courante de l’erreur SQL 1064 est le manque de données. Par exemple, si vous essayez d’insérer des données dans une table avec des champs obligatoires mais laissez certains champs vides, vous obtiendrez une erreur SQL 1064.
Pour corriger cette erreur, assurez-vous d’avoir fourni toutes les données requises. Vous devrez peut-être ajouter les données manquantes manuellement.
En outre, l’erreur peut apparaître lors de l’importation de votre base de données à partir d’un fichier de sauvegarde corrompu. Créez une nouvelle sauvegarde de votre base de données originale et importez-la à nouveau sur le nouveau serveur.
Les utilisateurs de SiteGround peuvent profiter de l’outil Importer un vidage de la base de données, créée pour importer des bases de données plus volumineuses.
En cas de doute sur les champs obligatoires, vérifiez la définition de la table ou consultez l’administrateur de la base de données.
-
Étape 7. Demander de l’aide
Si vous avez essayé toutes les étapes ci-dessus et que vous ne parvenez toujours pas à corriger l’erreur SQL 1064, essayez de trouver de l’aide.
Vous pouvez contacter l’administrateur de la base de données ou consulter un forum ou une communauté en ligne dédiée à la programmation SQL.
De nombreuses ressources en ligne sont disponibles pour les programmeurs débutants et expérimentés, et vous pouvez trouver des réponses à la plupart des questions liées à SQL. Vous pouvez trouver des informations utiles sur le forum officiel MySQL, où les utilisateurs s’entraident pour résoudre des problèmes plus élaborés et partagent leurs expériences.
3 conseils pour éviter l’erreur SQL 1064
Vous pouvez éviter l’erreur SQL 1064 en suivant les bonnes pratiques qui réduisent le risque de commettre une erreur de syntaxe.
Utiliser un validateur SQL pour détecter une erreur de syntaxe
Un validateur SQL est un outil qui vérifie la syntaxe de votre code SQL et identifie les erreurs. Son utilisation vous permet de détecter et de corriger les erreurs plus tôt avant d’exécuter le code.
EverSQL est l’un des outils de validation SQL gratuits les plus populaires. Soumettez votre requête SQL et appuyez sur le bouton Valider la syntaxe SQL. Le vérificateur inspectera le code et signalera les erreurs potentielles dans les requêtes MySQL.
Utiliser des alias SQL
Les alias SQL vous permettent d’attribuer un nom temporaire à une table ou une colonne. En utilisant des alias, vous pouvez simplifier votre code SQL et éviter les erreurs de syntaxe causées par des fautes de frappe ou des ambiguïtés. Notez que l’alias SQL reste actif uniquement pendant la durée de la requête SQL.
La clause AS active un alias pour une table ou une colonne. Pour attribuer un alias à une colonne, utilisez le modèle suivant.
SELECT nom_colonne AS nom_alias
FROM nom_table;
Pour attribuer un alias à une table, utilisez le format ci-dessous.
SELECT nom_colonne(s)
FROM nom_table AS nom_alias;
Remplacez nom_colonne et nom_table par les noms existants dans votre base de données et nom_alias – par l’alias personnalisé de votre choix.
Décomposer les instructions SQL
Décomposer les instructions SQL complexes en parties plus petites et gérables peut vous aider à identifier facilement les erreurs. En testant des parties plus petites de votre code SQL, vous pouvez isoler et corriger les erreurs avant qu’elles ne provoquent des problèmes importants.
Conclusion
L’erreur SQL 1064 est une erreur courante rencontrée par les programmeurs SQL. Des erreurs de syntaxe, des commandes obsolètes, des types de données incorrects, des données manquantes ou d’autres erreurs dans le code SQL provoquent généralement cette erreur.
En suivant les étapes décrites dans ce guide et en mettant en œuvre les conseils pour éviter l’erreur MySQL 1064, vous pouvez l’éviter et garantir le bon fonctionnement de votre code SQL. N’oubliez pas de toujours vérifier les erreurs de syntaxe et de demander de l’aide en cas de besoin.