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 :

Inserer les données du formulaire dans ma base


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 54
    Par défaut Inserer les données du formulaire dans ma base
    bonjour j'ai un formulaire a travers lequel j'entre des donnes et j'aimerai les inserer dans ma base de donnee et pour cela j'ai tente le code suivant
    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
     
    if ( isset($_POST['code']) && $_POST['code']!="0" && isset ($_POST['nom']) && $_POST['prenom']&&$_POST['adresse'])
    {$code=$_POST['code'];
    $nom=$_POST['nom'];
    $prenom=$_POST['prenom'];
    $adresse=$_POST['adresse'];
    try
    {
        $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '', $pdo_options);
     
     
        $req = $bdd->prepare('INSERT INTO etudiant (code_etudiant, nom_etudiant,prenom_etudiant,adresse) VALUES('$code','$nom','$prenom','$adresse') ');
     
     
     
       $req->closeCursor();
    }
    catch(Exception $e)
    {
        die('Erreur : '.$e->getMessage());
    }
     
     
        }
     
     
     
     
     
     
    ?>
     
     
    	</body>
    </html>

    mais il me marque une erreur a la ligne de la requete comme quoi c'est une erreur de variable pouvez vous m'aider et merci d'avance

  2. #2
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    ça ne risque pas de marcher, tu as mis les quotes dans le mauvais sens. Pour rappel, seules les doubles quotes (nowdoc et heredoc) permettent d'utiliser le remplacement des variables par leur valeur dans les chaines de caractères. Ton prepare devrait donc être:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $req = $bdd->prepare("INSERT INTO etudiant (code_etudiant, nom_etudiant,prenom_etudiant,adresse) VALUES('$code','$nom','$prenom','$adresse')");
    Ensuite, pourquoi utilises-tu PDOStatement::closeCursor au lieu de PDOStatement::execute ??

  3. #3
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Tu peux également limiter cette expression:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (isset($_POST['code']) 
    && $_POST['code']!="0" 
    && isset ($_POST['nom']) 
    && $_POST['prenom']
    && $_POST['adresse'])
    de cette façon:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (!empty($_POST['code']) 
    && !empty($_POST['nom'])
    && !empty($_POST['prenom'])
    && !empty($_POST['adresse']))
    C'est un peu plus clair. Tu peux également utiliser les filtres si tu le sens.

  4. #4
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 54
    Par défaut
    tout d'abord merci pour tes conseils et effectivement il manque le execute que j'ai mit de cette facon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $req->execute(array(
    	'code' ,
    	'nom',
    	'prenom',
    	'adresse' ,
     
    	));

  5. #5
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Pourquoi tu passe un tableau ?? Ta requête préparée n'a pas de placeholder donc un execute sans paramètre suffit.

    Au passage, le tableau qu'on passe par PDOStatement::execute est un tableau associatif avec en clé les noms des placeholders et en valeur les valeurs à affecter.

  6. #6
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2011
    Messages : 54
    Par défaut
    en general pour l'execution on peut se contenter juste de mettre
    $req=bdd->execute; ????

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/01/2015, 15h33
  2. [MySQL] Insertion des données du formulaire dans la base
    Par trippy971 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 28/03/2014, 19h26
  3. [MySQL] inserer des données en arabe dans une base de données mysql
    Par curieuseInformatique dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 24/09/2011, 11h03
  4. Insertion des données du formulaire dans la base
    Par bebas dans le forum Langage
    Réponses: 9
    Dernier message: 23/02/2007, 12h03
  5. inserer les données dans une base de donnée a partir d'un datagrid
    Par sundjata dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 31/07/2006, 00h46

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