Erreur de syntaxe mysql_query
Résolu
MK-10
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
MK-10 Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
MK-10 Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
Bonjour tout le monde,
Voila, j' un petit problème qui sur lequel je me casse la tête.
En fait, je n'arrive pas a insérer des données récupérées d'un formulaire dans ma base de données. Je reçois une erreur qui me dit d'adapter ma syntaxe a la version de mon serveur MySQL.
Merci d'avance pour vos apports.
Erreur reçue:
Mon code:
Voila, j' un petit problème qui sur lequel je me casse la tête.
En fait, je n'arrive pas a insérer des données récupérées d'un formulaire dans ma base de données. Je reçois une erreur qui me dit d'adapter ma syntaxe a la version de mon serveur MySQL.
Merci d'avance pour vos apports.
Erreur reçue:
Erreur SQL !INSERT INTO colloque_membres VALUES ( Intervenant, nomdefamille, xnom, xprenom,xpays, xnationalite,2012-08-31,Féminin,Divorcé,xmail@mail.fr,0300000000, 0100000000,x rue cp) 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 '@mail.fr,0300000000, 0100000000,x rue cp)' at line 2
Mon code:
<?php include('includes/connexion_db.php'); //echo 'connexion OK'; ?> <?php //Récupèration des variables if ( isset($status)) $statu=$_POST['status']; if ( isset($nomfamille)) $nomfamille=$_POST['nomfamille']; if ( isset($nom)) $nom = $_POST['nom']; if ( isset($prenom)) $prenom = $_POST['prenom']; if ( isset($pays)) $pays = $_POST['pays']; if ( isset($nationalite)) $nationalite = $_POST['nationalite']; if ( isset($age)) $age = $_POST['age']; if ( isset($sexe)) $sexe = $_POST['sexe']; if ( isset($statusfamille)) $statusfamille = $_POST['statusfamille']; if ( isset($mail)) $mail = $_POST['mail']; if ( isset($confirm_mail)) $confirm_mail = $_POST['confirm_mail']; if ( isset($phone_portable)) $phone_portable = $_POST['phone_portable']; if ( isset($phone_fixe)) $phone_fixe = $_POST['phone_fixe']; if ( isset($adresse)) $adresse = $_POST['adresse']; if( empty($_POST['nom']) || empty($_POST['prenom']) || empty($_POST['pays']) || empty($_POST['nationalite']) || empty($_POST['phone_portable']) || empty($_POST['mail'])|| $_POST['mail']!=$_POST['confirm_mail']) { echo 'Veuillez remplir correctement tous les champs';/*si ces champs son vides ou erreur dans la saissie du mail alors message d'erreur*/ }//dans le cas ou les mails sont bon, on verifie son format else if( !empty($_POST['mail']) && (!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['mail']))){ echo 'Votre adresse E-Mail n\'a pas un format valide';// si format non valide alors erreur } else{ $sql= 'INSERT INTO colloque_membres VALUES ( '.$_POST['status'].','.$_POST['nomfamille'].', '.$_POST['nom'].', '.$_POST['prenom'].','.$_POST['pays'].','.$_POST['nationalite'].','.$_POST['age'].', '.$_POST['sexe'].','.$_POST['statusfamille'].','.$_POST['mail'].','.$_POST['phone_portable'].','.$_POST['phone_fixe'].','.$_POST['adresse'].') '; mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error()); mysql_close(); } ?>
A voir également:
- Erreur de syntaxe mysql_query
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues
- Java code erreur 1603 ✓ - Forum Windows
4 réponses
Bonjour
Il te manque des ' ' autour de tes données :
Il te manque des ' ' autour de tes données :
$sql= "INSERT INTO colloque_membres VALUES ( '$_POST[status]','$_POST[nomfamille]', '$_POST[nom]', '$_POST[prenom]','$_POST[pays]','$_POST[nationalite]','$_POST[age]', '$_POST[sexe]','$_POST[statusfamille]','$_POST[mail]','$_POST[phone_portable]','$_POST[phone_fixe]','$_POST[adresse]') ";
Bonjour, merci pour votre intervention.
Ils ne manquaient pas, mais il y en avait de trop les ' '. A noter aussi, j'ai une colonne id qui s'auto incrémente, donc j'ai dû ajoute des ' ' au début des values.
:)
Nouvelle syntaxe:
Ils ne manquaient pas, mais il y en avait de trop les ' '. A noter aussi, j'ai une colonne id qui s'auto incrémente, donc j'ai dû ajoute des ' ' au début des values.
:)
Nouvelle syntaxe:
$sql= "INSERT INTO colloque_membres VALUES ( ' ', '$_POST[status]', '$_POST[nomfamille]', '$_POST[nom]', '$_POST[prenom]','$_POST[pays]', '$_POST[nationalite]','$_POST[age]','$_POST[sexe]','$_POST[statusfamille]', '$_POST[mail]','$_POST[phone_portable]','$_POST[phone_fixe]','$_POST[adresse]"); mysql_query ($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error()); mysql_close();
Si, ils manquaient. Les apostrophes qui figuraient dans ta ligne étaient des délimiteurs de chaîne du php, pas des délimiteurs de valeurs de mysql. D'ailleurs, ça se voyait bien dans ton message d'erreur :
au lieu de
Les ' ' qu'il y avait dans $_POST['status'], $_POST['nomfamille'] etc... n'étaient pas en trop dans ta manière d'écrire. Si je les ai retirés, c'est parce que je complètement changé la manière d'écrire la requête : tu concaténais une douzaine de morceaux de chaines entre simples quotes et de variables, j'ai tout écrit en une seule chaîne entre doubles quotes.
VALUES ( Intervenant, nomdefamille, xnom, xprenom,xpays, xnationalite,2012-08-31,Féminin,Divorcé,xmail@mail.fr,0300000000, 0100000000,x rue cp)
au lieu de
VALUES ( 'Intervenant', 'nomdefamille', 'xnom', 'xprenom','xpays', 'xnationalite','2012-08-31','Féminin','Divorcé','xmail@mail.fr','0300000000', '0100000000','x rue cp')
Les ' ' qu'il y avait dans $_POST['status'], $_POST['nomfamille'] etc... n'étaient pas en trop dans ta manière d'écrire. Si je les ai retirés, c'est parce que je complètement changé la manière d'écrire la requête : tu concaténais une douzaine de morceaux de chaines entre simples quotes et de variables, j'ai tout écrit en une seule chaîne entre doubles quotes.
Salut MK-10 ,
En fait ça marche pas parce que tu doit spécifier les noms des colonnes dans ta requete. Sinon tu pourras pas associer une valeur à une colonne donnée.
Voici la correction :
$sql= "INSERT INTO colloque_membres(col_'' , col_status, col_nomfamille, col_nom ,col_prenom,col_pays,col_nationalite,col_age,col_sexe , etc etc)
VALUES ( ' ', '$_POST[status]', '$_POST[nomfamille]', '$_POST[nom]', '$_POST[prenom]','$_POST[pays]',
'$_POST[nationalite]','$_POST[age]','$_POST[sexe]','$_POST[statusfamille]',
'$_POST[mail]','$_POST[phone_portable]','$_POST[phone_fixe]','$_POST[adresse]");
Pour plus d'informations :http://dev.mysql.com/doc/refman/5.0/fr/insert.html?ff=nopfpls
cdt
En fait ça marche pas parce que tu doit spécifier les noms des colonnes dans ta requete. Sinon tu pourras pas associer une valeur à une colonne donnée.
Voici la correction :
$sql= "INSERT INTO colloque_membres(col_'' , col_status, col_nomfamille, col_nom ,col_prenom,col_pays,col_nationalite,col_age,col_sexe , etc etc)
VALUES ( ' ', '$_POST[status]', '$_POST[nomfamille]', '$_POST[nom]', '$_POST[prenom]','$_POST[pays]',
'$_POST[nationalite]','$_POST[age]','$_POST[sexe]','$_POST[statusfamille]',
'$_POST[mail]','$_POST[phone_portable]','$_POST[phone_fixe]','$_POST[adresse]");
Pour plus d'informations :http://dev.mysql.com/doc/refman/5.0/fr/insert.html?ff=nopfpls
cdt