IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Erreur de syntaxe près de [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 90
    Par défaut Erreur de syntaxe près de
    Bonjour,

    Je cherche depuis trop longtemps une erreur Mysql, alors je frappe à la porte d'une âme charitable qui m'aidera.

    Je veux remplir une table Individus :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    CREATE TABLE IF NOT EXISTS `Individus`
    ( 
      `ind` smallint(5) unsigned NOT NULL auto_increment,
      `gedcom` varchar(10),
      `sosa` smallint(5),
      `nom` varchar(25),
      `prenom` varchar(25),
      `sexe` varchar(3),
      `date_naissance` varchar(15),
      `lieu_naissance` varchar(25),
      `date_deces` varchar(15),
      `lieu_deces` varchar(25),
      `gedcom_pere` varchar(10),
      `gedcom_mere` varchar(10),
       PRIMARY KEY (`ind`)
    );

    Je renseigne mes variables dans mon prog PHP :

    $cle_indi, $sosa, $nom, $prenom, $sexe, $date_n, $lieu_n, $date_d, $lieu_d, $cle_pere, $cle_mere.

    Je les affiche avant l'insert pour vérifier, cela donne :

    Enregistrement individus 2I-0-LABROUSSE-Jeanne-F-Calcul 1756 -0-0-0-3I-4I
    Et quand je fais l'insert suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $SqlTmp = "INSERT INTO Individus (gedcom, sosa, nom, prenom, sexe, date_naissance, lieu_naissance, date_deces, lieu_deces, gedcom_pere, gedcom_mere) 
    	 VALUES ($cle_indi, $sosa, $nom, $prenom, $sexe, $date_n, $lieu_n, $date_d, $lieu_d, $cle_pere, $cle_mere)";
    mysql_query($SqlTmp) or  die('Erreur de base : '.mysql_error());
    J'ai l'erreur suivante :

    Erreur de base : Erreur de syntaxe près de '1756 , 0, 0, 0, 3I, 4I)' à la ligne 2
    Je reprends mon insert en remplaçant les variables par leur valeur pour le lancer sous PhpMyAdmin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO Individus (gedcom, sosa, nom, prenom, sexe, date_naissance, lieu_naissance, date_deces, lieu_deces, gedcom_pere, gedcom_mere)   VALUES ('2I', '0', 'LABROUSSE', 'Jeanne', 'F', 'Calcul 1756 ', '0','0' ,'0' , '3I', '4I')
    Et là l'enregistrement se fait comme il faut !!

    Pouvez vous m'indiquer où se trouve mon erreur ??
    Merci beaucoup.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il manque les guillemets pour le nom et le prénom.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 90
    Par défaut
    A quel endroit manque t-il ces guillemets ? car il n'y en a nulle part pour aucune variable ?
    Merci

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Et puis tu devrais utiliser les fonctions dédiées pour protéger tes variables. Pour mysql (aujourd'hui dépréciée) c'est mysql_real_escape_string

  5. #5
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    Citation Envoyé par theo17 Voir le message
    A quel endroit manque t-il ces guillemets ? car il n'y en a nulle part pour aucune variable ?
    Merci
    Il en faut obligatoirement pour les type varchar, text etc. bref pour tout ce qui n'est pas des champs recevant des entiers. Et n'oublies pas mon précédent message.

  6. #6
    Membre confirmé
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2012
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2012
    Messages : 90
    Par défaut
    J'ai rajouté des guillemets à chaque variable de l'insert, tout marche nickel et ma table a bien été remplie, merci encore et bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Erreur de syntaxe près de ''
    Par akara dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 30/03/2009, 15h03
  2. Erreur de syntaxe près de 'ENGINE=InnoDB'
    Par kamaldev dans le forum Requêtes
    Réponses: 5
    Dernier message: 05/06/2008, 16h11
  3. Réponses: 7
    Dernier message: 15/08/2007, 19h15
  4. [MySQL] problème : Erreur de syntaxe près de '' à la ligne 1
    Par Amandine62 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 24/02/2007, 19h28
  5. [MySQL] Erreur de syntaxe près de ' '', '', à la ligne 1
    Par micka30 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/01/2007, 02h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo