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

EDI, CMS, Outils, Scripts et API PHP Discussion :

impossible d'inserer des donnees a partir d'un formulaire dans la Bd


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mauritanie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2017
    Messages : 4
    Par défaut impossible d'inserer des donnees a partir d'un formulaire dans la Bd
    Bonsoir, je suis nouveau dans PHP PDO, j'ai creé un formulaire avec lequel je saisi mes donnees et je veux les recuperer dans la base de Mysql mais qd je saisi les donnees et je valide; je ne vois rien dans la base de donnees.
    j'utilise wampserver 3.0.1

    voila le message d'erreur et le code PHP

    ( ! ) Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 'id_user' at row 1' in C:\wamp64\www\essai\config.php on line 34

    ( ! ) PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect integer value: '' for column 'id_user' at row 1 in C:\wamp64\www\essai\config.php on line 34

    Call Stack
    #
    Time
    Memory
    Function
    Location

    1 0.0006 247216 {main}( ) ...\config.php:0
    2 0.0034 257992 execute ( ) ...\config.php:

    voila mon code
    Code : 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    <?php
     
    try{
    	$con=new PDO('mysql:host=localhost;dbname=boutique', 'root', '');
        $con->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    }
    catch (Exception $ex) {
     
    	echo 'Not Connectsd'. $ex->getMessage();
    }
     
     
     
    if (isset($_POST['id_user'])) {
    	$id_user=$_POST['id_user'];
    	$nom=$_POST['nom'];
    	$prenom=$_POST['prenom'];
    	$telephone=$_POST['telephone'];
     
     
     
    		$req= "INSERT INTO user (id_user,nom,prenom,telephone,login,pwd,email,id_userCreateur)  VALUES (:id_user,:nom,:prenom,:telephone);";       
    		$query= $con->prepare($req);
    		$result=$query->execute(array(
    		'id_user' => $id_user,
    	    'nom' => $nom,
    		'prenom' => $prenom,
    		'telephone' => $telephone,
    		'login' => $login,
    		'pwd' => $pwd,
    		'email' => $email,
    		));
     
     
    }
     
     
     
     
    ?>
    voila le formulaire

    Code : 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <html>
    <head><title>Creer user</title></head>
    	<body>
    	<form action="config" method="POST" name="FormInserteUser">
    		<table align="center">
    			<tr>
    				<td> Iduser : </td>
    				<td><input type="text" name="id_user" size="20"></td>
    			</tr>
    			<tr>
    				<td> nom : </td>
    				<td><input type="text" name="nom" size="20"></td>
    			</tr>
    			<tr>
    				<td> Prenom : </td>
    				<td><input type="text" name="prenom" size="20"></td>
    			</tr>
    			<tr>
    				<td> Telephone : </td>
    				<td><input type="text" name="telephone" size="20"></td>
    			</tr>
     
    			       <td><input type="reset" name="annuler" value="Annuler"></td>
    				<td><input type="submit" name="valider" value="Valider"></td>
    			</tr>
    		</table>
     
    	</form>
    	</body>
    </html>

  2. #2
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Et il y a quoi dans id_user ? Ta table s'attend à recevoir un nombre.

    Essaie de mettre un var_dump($id_user); avant $req = ".....


    PS : dans ton insert il y a plus de champs dans la clause INTO que dans la clause VALUES.
    PS2 : si id_user correspond au pseudo de l'utilisateur il faut d'abord contrôler qu'il n'y a pas déjà un utilisateur avec le même pseudo. Le contrôle doit être fait en minuscules ou en majuscules sur les deux terme de la comparaison pour éviter que tu aies un utilisateur badaze un autre Badaze un autre badaZe, etc...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    j'ajoute que si id_user est l'index NUMERIQUE AUTO-INCREMENTE en BDD, il n'a rien à faire dans le formulaire, ni dans la requête INSERT.

  4. #4
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mauritanie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2017
    Messages : 4
    Par défaut merci de votre aide
    Citation Envoyé par jreaux62 Voir le message
    Bonjour,

    j'ajoute que si id_user est l'index NUMERIQUE AUTO-INCREMENTE en BDD, il n'a rien à faire dans le formulaire, ni dans la requête INSERT.
    bonjour
    L'id user n'est pas auto incremente; si toute fois j'active l'auto incrementation je l'enleve du formulaire et de la condition ifsset.

  5. #5
    Membre Expert
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Par défaut
    Essaie $id_user = (int) $id_user;

    Néanmoins ce n’est pas normal qu’un identifiant primaire soit défini par l’utilisateur.
    Quoi qu’il en soit si tu continues sur cette voie tu dois contrôler que l’id ne soit pas déjà utilisé et que la variable ne contienne que du numérique.

  6. #6
    Invité
    Invité(e)
    Par défaut
    - l'id_user correspond a l'identifiant unique du user.
    Alors il faut faire comme j'ai dit : AUTO-INCREMENT !


    Inutile de réinventer la roue...

  7. #7
    Candidat au Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Décembre 2017
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mauritanie

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2017
    Messages : 4
    Par défaut merci de votre reponse
    Dans la table id_user c un integer il recoit un nombre de taille 4. l'id du user n'est pas auto-incrementer

    je mets un var_dump($id_user), je trouve ce message d'erreur:
    C:\wamp64\www\essai\config.php:30:string '2227' (length=4)
    - Dans l'insert j'ai biensur supprimer les champs de trop dans la clause INTO
    - l'id_user correspond a l'identifiant unique du user.

  8. #8
    Membre actif Avatar de monaka
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Mars 2017
    Messages : 64
    Par défaut
    salut fouta1512 je pense tout a été dit par nos très chers amis membres du club tu devrais donc essayer cela tout simplement

    Code : 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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    <?php
     
    try{
    	$con=new PDO('mysql:host=localhost;dbname=boutique', 'root', '');
        $con->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    }
    catch (Exception $ex) {
     
    	echo 'Not Connected'. $ex->getMessage();
    }
     
     
     
    if (isset($_POST['valider'])) {
     
    	$nom=$_POST['nom'];
    	$prenom=$_POST['prenom'];
    	$telephone=$_POST['telephone'];
     
     
     
    		$req= "INSERT INTO user  VALUES (null,:nom,:prenom,:telephone)";       
    		$query= $con->prepare($req);
    		$result=$query->execute(array(
    	        'nom' => $nom,
    		'prenom' => $prenom,
    		'telephone' => $telephone,
     
    		));
     
     
    }
     
     
     
     
    ?>




    La rigueur vient toujours à bout de l'obstacle.
    Les détails font la perfection, et la perfection n'est pas un détail.

Discussions similaires

  1. Réponses: 10
    Dernier message: 02/09/2012, 02h34
  2. Impossible d'insérer des champs vides
    Par shkyo dans le forum Requêtes
    Réponses: 5
    Dernier message: 21/08/2006, 16h29
  3. Récupération des données à partir d'un menu
    Par projetM dans le forum Langage
    Réponses: 2
    Dernier message: 22/05/2006, 00h29
  4. inserer des donnees issues d'un formulaire dans mysql
    Par sousou207 dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 01/12/2005, 23h50
  5. Comment inserer des donnee de type Large Object !!
    Par josoft dans le forum Requêtes
    Réponses: 4
    Dernier message: 20/07/2003, 11h21

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