erreur insert en base

Invité
Invité n'ayant pas de compte PHPfrance

09 févr. 2008, 00:25

Voici mon erreur :

Code : Tout sélectionner

INSERT INTO vehicules(NULL, 'renault', 'diesel', '2000', '198000', 'radio dvd', '20000', 'bleu')

Code : Tout sélectionner

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 'NULL, 'renault', 'diesel', '2000', '198000', 'radio dvd', '20000', 'bleu')' at line 1
et le code :
$query = "INSERT INTO vehicules(NULL, ".
                    "'".$marque."', ".
                    "'".$moteur."', ".
                    "'".$annee."', ".
                    "'".$nbkm."', ".
                    "'".$equip."', ".
                    "'".$prix."', ".
                    "'".$couleur."')";
Surement un problème d'apostrophe à mon avis. J'arrive pas à comprendre comment sa marche.
Merci de l'aide.

Eléphant du PHP | 259 Messages

09 févr. 2008, 00:44

La bonne syntaxe est :

Code : Tout sélectionner

INSERT INTO table ( champ1, champ2... ) VALUES ( val1, val2... )
la liste des champs est facultative si ils sont tous utilisés.

un truc bien pratique pour préparer ses requêtes sans s'emmêler les pinceaux avec les guillemets et les concaténations est d'utiliser la fonction sprintf(), ça parait compliqué au début, mais une fois habitué, ça simplifie grandement la vie.

Invité
Invité n'ayant pas de compte PHPfrance

09 févr. 2008, 02:32

Bonjour, je connais la syntaxe SQL, le problème c'est les apostrophes et guillemets.

Mammouth du PHP | 19672 Messages

09 févr. 2008, 07:34

Bonjour, je connais la syntaxe SQL, le problème c'est les apostrophes et guillemets.
Tu réponds un peu vite et tu n'as pas correctement lu la réponse qui t'a été donnée. Ce n'est pas un problème d'apostrophe : tu as omis le mot clé "VALUES".

Donc on fait soit :

Code : Tout sélectionner

INSERT INTO ma_table(col1, col2,..., colx) VALUES (val1, val2,..., valx)
Soit :

Code : Tout sélectionner

INSERT INTO ma_table VALUES (val1, val2,..., valx)
Or ta requête actuelle ne contient pas ce mot clé : tu obtiens en retour un message indiquant une erreur de syntaxe.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

x@v
Mammouth du PHP | 570 Messages

09 févr. 2008, 20:06

très pédagogique la lecture de post, j'était en train de me demander si ce n'était pas un problème de type...
alors une coquille...