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 :

Insertion de données avec PDO [PDO]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 23
    Par défaut Insertion de données avec PDO
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
      <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
     
      <title>Inscription</title>
    </head>
    <body>
     
    <?php
    if(isset($_POST['inscription_presta']))
    {
    extract($_POST);
     
    try
    {
    $dbh=new PDO('mysql:host=localhost;dbname=alamaison','root','');
     
    }
    catch(PDOException $e)
    {
    print "erreur : ".$e->getMessage()."<br>";
    die();
    }
     
    $sql_presta='INSERT INTO prestataire(nom,prenom,mail,mdp,commune,menage,menage_com,soutien_scolaire,soutien_scolaire_com,jardinage,jardinage_com,garde_enfant,garde_enfant_com,covoiturage,covoiturage_com,aide_vieux,aide_vieux_com,aide_info,aide_info_com,bricolage,bricolage_com,livraison,livraison_com,coiffure,coiffure_com,description) VALUES (:nom,:prenom,:mail,:mdp,:commune,:menage,:menage_com,:soutien_scolaire,:soutien_scolaire_com,:jardinage,:jardinage_com,:garde_enfant,:garde_enfant_com,:covoiturage,:covoiturage_com,:aide_vieux,:aide_vieux_com,:aide_info,:aide_info_com,:bricolage,:bricolage_com,:livraison,:livraison_com,:coiffure,:coiffure_com,:description)';
    $insert_presta=$dbh->prepare($sql_presta);
    $insert_presta->BindValue(':nom',$nom);
    $insert_presta->BindValue(':prenom',$prenom);
    $insert_presta->BindValue(':mail',$mail);
    $insert_presta->BindValue(':mdp',$mdp);
    $insert_presta->BindValue(':commune',$commune);
    $insert_presta->BindValue(':menage',$menage);
    $insert_presta->BindValue(':menage_com',$menage_com);
    $insert_presta->BindValue(':soutien_scolaire',$soutien_scolaire);
    $insert_presta->BindValue(':soutien_scolaire_com',$soutien_scolaire_com);
    $insert_presta->BindValue(':jardinage',$jardinage);
    $insert_presta->BindValue(':jardinage_com',$jardinage_com);
    $insert_presta->BindValue(':garde_enfant',$garde_enfant);
    $insert_presta->BindValue(':garde_enfant_com',$garde_enfant_com);
    $insert_presta->BindValue(':covoiturage',$covoiturage);
    $insert_presta->BindValue(':covoiturage_com',$covoiturage_com);
    $insert_presta->BindValue(':aide_vieux',$aide_vieux);
    $insert_presta->BindValue(':aide_vieux_com',$aide_vieux_com);
    $insert_presta->BindValue(':aide_info',$aide_info);
    $insert_presta->BindValue(':aide_info_com',$aide_info_com);
    $insert_presta->BindValue(':bricolage',$bricolage);
    $insert_presta->BindValue(':bricolage_com',$bricolage_com);
    $insert_presta->BindValue(':livraison',$livraison);
    $insert_presta->BindValue(':livraison_com',$livraison_com);
    $insert_presta->BindValue(':coiffure',$coiffure);
    $insert_presta->BindValue(':coiffure_com',$coiffure_com);
    $insert_presta->BindValue(':description',$description);
    $insert_presta->execute();
    if(!$insert_presta->execute())
    {
    echo "l'insertion n'a pas fonctionné";
    }
    }
    else
    {
    ?>
    <div id="inscrip_presta">
    <form name="inscri_presta_form" method="post" enctype="multipart/form-data" action="inscription.php">
    <fieldset>
    <legend>Informations utilisateurs</legend>
    <label>Nom: <input type="text" name="nom"/></label> <label><br><br>Prenom: <input type="text" name="prenom"/></label><br><br>
       <label>Adresse e-mail: <input type="text" name="mail"/></label> <br><br><label>Mots de passe: <input type="password" name="mdp" /></label><br><br>
    <label>Commune: <input type="text" name="commune"/></label><br><br>
    Description:<br><textarea name="description" rows="5" cols="25"></textarea><br>
    </fieldset>
    <fieldset>
    <legend>Vos domaines de compétence</legend>
    <input type="checkbox" name="menage" value="oui">Menage<br>
    <textarea name="menage_com" rows="5" cols="25"></textarea><br>
    <input type="checkbox" name="soutien_scolaire" value="oui">Soutien scolaire<br>
    <textarea name="soutien_scolaire_com" rows="5" cols="25"></textarea><br>
    <input type="checkbox" name="jardinage" value="oui">Jardinage<br>
    <textarea name="jardinage_com" rows="5" cols="25"></textarea><br>
    <input type="checkbox" name="garde_enfant" value="oui">Garde d'enfants<br>
    <textarea name="garde_enfant_com" rows="5" cols="25"></textarea><br>
    <input type="checkbox" name="covoiturage" value="oui">Covoiturage<br>
    <textarea name="covoiturage_com" rows="5" cols="25"></textarea><br>
    <input type="checkbox" name="aide_vieux" value="oui">Aides aux personnes agées<br>
    <textarea name="aide_vieux_com" rows="5" cols="25"></textarea><br>
    <input type="checkbox" name="aide_info" value="oui">Aide informatique<br>
    <textarea name="aide_info_com" rows="5" cols="25"></textarea><br>
    <input type="checkbox" name="bricolage" value="oui">Bricolage<br>
    <textarea name="bricolage_com" rows="5" cols="25"></textarea><br>
    <input type="checkbox" name="livraison" value="oui">Livraison<br>
    <textarea name="livraison_com" rows="5" cols="25"></textarea><br>
    <input type="checkbox" name="coiffure" value="oui">Coiffure<br>
    <textarea name="coiffure_com" rows="5" cols="25"></textarea><br>
    </fieldset>
    <input type="submit" name="inscription_presta" value="S'inscrire"/>
    </form>
    </div>
    <?php
    }
    ?>
    </body>
    </html>
    Voilà j'ai un petit problême avec ce bout de code,j'en deviens fou,je ne comprends pas pourquoi mon insertion ne fonctionne pas
    expliquations=>
    j'ai mon formulaire,quand je valide,le formulaire renvoi sur la même page,avec un isset,je vérifie que mon bouton a été cliqué,je ne vérifie pas chaque champs ici,j'ai voulu vous alléger le code
    donc je prépare ma requête avec pdo,je déclare chaque paramêtre avec mes post que j'ai préalablement extraits,j'essai d'insérer...
    et rien ça ne fonstionne pas
    je pense que c'est une erreur bête ,un problême de nommage ou quelque chose comme çà,si vous avez l'oeil,je veux bien de votre aide

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    Pourquoi fais tu un post sur une div ? "inscription_presta" c'est pas plutôt inscri_presta_form.
    Mais avez vous des messages d'erreur ou une capture dans le bloc catch ?
    Précisez

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 448
    Par défaut
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ..
    $insert_presta->execute();
    if(!$insert_presta->execute())
    ..
    Tu n'as pas du rééllement lire ton code, ou alors je suis pas vraiment myope et astigmate et je ne porte pas vraiment non plus de lunettes.

    bye

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 23
    Par défaut
    Citation Envoyé par gtraxx Voir le message
    Pourquoi fais tu un post sur une div ? "inscription_presta" c'est pas plutôt inscri_presta_form.
    Mais avez vous des messages d'erreur ou une capture dans le bloc catch ?
    Précisez
    le div c'étais juste pour la structuration,il n'est pas vraiment important,mes variables post passent bien
    en l'occurence le "inscription_presta",c'est le bouton valider,c'est sur lui que je fais le isset
    et non je n'ai pas de message d'erreur
    j'ai regardé le code erreur et c'était 0000


    ENSUITE


    Par défaut
    Salut,
    Code :


    ..
    $insert_presta->execute();
    if(!$insert_presta->execute())
    ..


    Tu n'as pas du rééllement lire ton code, ou alors je suis pas vraiment myope et astigmate et je ne porte pas vraiment non plus de lunettes.

    bye

    peux tu t'expliquer?quel est le problême avec ce que j'ai écris?
    $insert_presta->execute();=>c'est pour effectuer mon insertion
    et
    if(!$insert_presta->execute())=>c'est pour vérifier qu'elle a fonctionné

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    Vous devriez déjà ajouter des value="" dans vos champs, car je me demande ce que retourne le formulaire avec un echo sur ceux-ci afin de voir si ce qu'il contient n'est pas null.
    Je sais que cela peut paraître stupide mais j'ai eu le cas avec une class et le fait d'avoir oublier le value="" dans mon forms ma bloqué

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 23
    Par défaut
    Citation Envoyé par gtraxx Voir le message
    Vous devriez déjà ajouter des value="" dans vos champs, car je me demande ce que retourne le formulaire avec un echo sur ceux-ci afin de voir si ce qu'il contient n'est pas null.
    Je sais que cela peut paraître stupide mais j'ai eu le cas avec une class et le fait d'avoir oublier le value="" dans mon forms ma bloqué
    effectivement lol,c'est un reflexe à avoir
    le problême de mon script,c'est que je vois pas ou est le problême,conaissez vous des outils de dobuggage efficace,qui indiqueraient un oubli de parenthèse ou un mauvais nommage de variable?
    parce que ma requête est apparemment bien préparé

  7. #7
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    Personnellement je travail avec zendstudio qui franchement est très puissant pour le débuggage.
    Mais bon c'est un produit shareware, sinon il reste éclipse couplé de quelques plugins (c'est opensource).
    Pour le code essayer comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bindValue(':couleur', $couleur, PDO::PARAM_STR);
    car je vois que vous l'avez nommé BindValue et pensez à utiliser les constantes prédéfinie afin de lui donné le type de valeur.


  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 23
    Par défaut
    Citation Envoyé par gtraxx Voir le message
    Vous devriez déjà ajouter des value="" dans vos champs, car je me demande ce que retourne le formulaire avec un echo sur ceux-ci afin de voir si ce qu'il contient n'est pas null.
    Je sais que cela peut paraître stupide mais j'ai eu le cas avec une class et le fait d'avoir oublier le value="" dans mon forms ma bloqué
    merci gtraxx,en fait le problême était proche
    en fait je pensais que les checkbox renvoyaient une valeur si elles étaient cochées et rien si elles ne l'étaient pas
    c'est le cas mais j'avais oublié qu'elles ne créeaint même pas de variable dans le tableau $_POST
    donc j'avais des varaibles qui n'existaient pas si certaines cases n'étaient pas cochées d'ou le plantage de mon insertion
    j'ai donc fait en sorte qu'une variable ayant pour valeur "oui" quand une case est coché et que la même variable ait la valeur "non" quand la case n'est pas coché
    problême résolue et merci encore

  9. #9
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

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

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 044
    Par défaut
    Mais de rien

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

Discussions similaires

  1. Insertion de données avec php5
    Par Ludo75 dans le forum Langage
    Réponses: 3
    Dernier message: 24/08/2010, 15h18
  2. Insertion de donnée avec apostrophe
    Par jiojioforever dans le forum Langage SQL
    Réponses: 7
    Dernier message: 03/05/2007, 10h47
  3. [MySQL] Insertion de données avec apostrophes dans ma base
    Par kawther dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 01/04/2007, 09h06
  4. Insertion de données avec Posgretsql
    Par djibril dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 18/05/2004, 11h23
  5. Réponses: 2
    Dernier message: 14/05/2004, 14h32

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