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 :

pb requête :alimentation de DB [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Développeur Web
    Inscrit en
    Novembre 2008
    Messages
    146
    Détails du profil
    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2008
    Messages : 146
    Par défaut pb requête :alimentation de DB
    Bonjour tout le monde ,
    j'ai hésité avant d'ouvrir cette discutions car elle se répète pour l'énième fois!!
    j'ai lu toutes les réponses dans le forum ou presque mais le problème persiste . tout simplement une requête INSERT INTO comme d'habitude des valeur depuis un formulaire ...
    voila ma requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $sql = 'INSERT INTO adherent (NUMA,NOMA,PRENA,VILLEA,COTA,EMAIL,dateDeNaissance) 
    		VALUES (NULL
    		, '.$nom.'
    		, '.$prenom.'
    		, '.$ville.'
    		, '.$cota.'
    		, '.$email.'
    		, '.$dateDeNaissance.')';
    voila l'echo de ma requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    13INSERT INTO adherent (NUMA,NOMA,PRENA,VILLEA,COTA,EMAIL,dateDeNaissance) VALUES (NULL,sdk,lksd,dfgjk,0,sdfkn@hotmail.hk,2011-12-13)
    voila mon erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Erreur SQL !
    INSERT INTO adherent (NUMA,NOMA,PRENA,VILLEA,COTA,EMAIL,dateDeNaissance) VALUES (NULL,sdk,lksd,dfgjk,0,sdfkn@hotmail.hk,2011-12-13)
    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 '@hotmail.hk,2011-12-13)' at line 3
    sinon il m'affiche un erreur d'incompatibilité entre les type (date type dans la base de données et le la variable $dateDeNaissance ) !!!
    vraiment j'ai modifier mon requête INSERT INTO 255 000 fois et tjrs les même erreur !
    voila un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    123
    $sql = 'INSERT INTO adherent (NUMA,NOMA,PRENA,VILLEA,COTA,EMAIL,dateDeNaissance) 
    		VALUES 
    		(NULL,'.$nom.','.$prenom.','.$ville.','.$cota.','.$email.','.$dateDeNaissance.')';
    Erreur SQL ! INSERT INTO adherent (NUMA,NOMA,PRENA,VILLEA,COTA,EMAIL,dateDeNaissance) VALUES (NULL,mod,Med salah,sdf,0,mail@mail.fr,1985-12-14) 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 'salah,sdf,0,mail@mail.fr,1985-12-14)'
    pourriez vous m'aider les amis
    vraiment je suis devenue aveugle a cause les reformulation de ma requête et je suis pas habitué de travailler en php

  2. #2
    Membre chevronné Avatar de hariman
    Homme Profil pro
    Développeur Java, Android
    Inscrit en
    Janvier 2008
    Messages
    200
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations professionnelles :
    Activité : Développeur Java, Android
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2008
    Messages : 200
    Par défaut
    Bonjour,

    Je te suggère de mettre toutes les valeurs entre guillemets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $sql = 'INSERT INTO adherent
              (NUMA,NOMA,PRENA,VILLEA,COTA,EMAIL,dateDeNaissance) 
    	  VALUES 
              (NULL,"'.$nom.'","'.$prenom.'",...

  3. #3
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    C'est assez récurant comme problème il est vrai.

    La réponse est dans le message d'erreur :
    VALUES (NULL,sdk,lksd,
    Tes types de données sont des chaines de caractères, il faut donc 'quoter' (mettre des parenthèses).
    Ce n'est que si c'est une donnée de type entier (integer : 1,2,3, etc ...) où il n'est pas nécessaire (voire pas recommander) de le faire.


    Effectue ta requête plutôt comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $sql = "INSERT INTO adherent (NUMA,NOMA,PRENA,VILLEA,COTA,EMAIL,dateDeNaissance) 
    	VALUES (NULL,
    	'".mysql_real_escape_string($nom)."',
    	'".mysql_real_escape_string($prenom)."',
    	'".mysql_real_escape_string($ville)."',
    	'".mysql_real_escape_string($cota)."',
    	'".mysql_real_escape_string($email)."',
    	'".mysql_real_escape_string($dateDeNaissance)."')";
    Entre autre : mettre des doubles quotes (guillemets) sur l'ensemble de la chaine SQL, ça évite d'échapper par la suite, puis il faut protéger les données par mysql_real_escape_string pour éviter un éventuel SQL injection.

  4. #4
    Membre confirmé
    Développeur Web
    Inscrit en
    Novembre 2008
    Messages
    146
    Détails du profil
    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2008
    Messages : 146
    Par défaut
    Citation Envoyé par RunCodePhp Voir le message
    Salut

    C'est assez récurant comme problème il est vrai.

    La réponse est dans le message d'erreur :
    Tes types de données sont des chaines de caractères, il faut donc 'quoter' (mettre des parenthèses).
    Ce n'est que si c'est une donnée de type entier (integer : 1,2,3, etc ...) où il n'est pas nécessaire (voire pas recommander) de le faire.


    Effectue ta requête plutôt comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $sql = "INSERT INTO adherent (NUMA,NOMA,PRENA,VILLEA,COTA,EMAIL,dateDeNaissance) 
    	VALUES (NULL,
    	'".mysql_real_escape_string($nom)."',
    	'".mysql_real_escape_string($prenom)."',
    	'".mysql_real_escape_string($ville)."',
    	'".mysql_real_escape_string($cota)."',
    	'".mysql_real_escape_string($email)."',
    	'".mysql_real_escape_string($dateDeNaissance)."')";
    Entre autre : mettre des doubles quotes (guillemets) sur l'ensemble de la chaine SQL, ça évite d'échapper par la suite, puis il faut protéger les données par mysql_real_escape_string pour éviter un éventuel SQL injection.
    très très très grand merci pour votre aide. pas de problème de date pas de problème d'espace entre les mots tout et fonctionnelle parfaitement
    Bien cordialement
    Echap

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

Discussions similaires

  1. [AC-2007] problème sur requête alimentant une zone de liste via VBA
    Par Rémi GAUDINAT dans le forum VBA Access
    Réponses: 1
    Dernier message: 15/06/2010, 11h17
  2. [MySQL] alimenter une liste déroulante via une requête
    Par stefon dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 13/12/2006, 13h32
  3. TreeView alimenté par requête
    Par Hobbi1 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 09/11/2006, 16h24
  4. [SQL] Comment automatiser une requête SQL alimentée par un formulaire HTML?
    Par tse_tilky_moje_imja dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/06/2006, 23h46
  5. Alimenter une table avec une requête
    Par cboubou84 dans le forum MS SQL Server
    Réponses: 7
    Dernier message: 12/05/2006, 15h08

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