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 dans un formulaire pourtant simple


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2019
    Messages : 101
    Par défaut Erreur dans un formulaire pourtant simple
    Bonjour à tous,
    Ayant un projet à réaliser dans le cadre de mes cours, je cherche à créer un formulaire qui enrichirait ma BDD via une requête SQL...
    J'ai réussi à le faire hier puisque ça fonctionnait à merveille, puis j'ai du tripoter aujourd'hui quelque chose puisque l'erreur suivante apparaît désormais :

    Merci pour votre inscription !

    Warning: mysqli::query() expects parameter 1 to be string, object given in C:\xampp\htdocs\projetweb\MySQL.php on line 21
    erreur:impossible d'ajouter!


    Voici mon code :

    Code php : 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
    <?php
     
    require "MySQL.php";
     
    if (!isset($_POST["Nom"],$_POST["Prenom"],$_POST["Adresse"],$_POST["Ville"],$_POST["Code_postal"],$_POST["MDP"],$_POST["Date_naissance"],$_POST["Mail"])) {
    die ("paramètre manquant!");
     
    }
    $Nom=($_POST["Nom"]);
    $Prenom=($_POST["Prenom"]);
    $Adresse=($_POST["Adresse"]);
    $Ville=($_POST["Ville"]);
    $Code_postal=($_POST["Code_postal"]);
    $Telephone=($_POST["Telephone"]);
    $MDP=($_POST["MDP"]);
    $Date_naissance=($_POST["Date_naissance"]);
    $Mail=($_POST["Mail"]);
     
     
    $c=connectMySQL();
    if ($c) {
     
    echo 'Merci pour votre inscription ! <br />';
     
    		if (executeQuery($c, "insert into client (Nom, Prenom,Adresse,Ville,Code_postal,Telephone,MDP,Mail,Date_naissance) values ('$Nom','$Prenom','$Adresse','$Ville','$Code_postal',$Telephone,'$MDP','$Mail','$Date_naissance')")) {
     
     
       echo'<a href="Se Connecter.php" > Se connecter </a>'; 
     
    }
     else {
     
    	echo "erreur:impossible d'ajouter!";
    closemysql($c);
    }
     
    }
     
    ?>



    Ainsi que mon code MySQL que j'appelle :

    Code php : 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
       <?php
     
       function connectMySQL() {
     
     
        $c = new mysqli("localhost", "root","", "projetweb", 3306);
    return ($c->connect_errno) ? false : $c;
     }
     
     function escapeBadChars ($c,$val) {
     	return $c->real_escape_string($val);
     }
     
            function executeQuery($sql) {
                // creation de la connection
                $c = new mysqli("localhost", "root","", "projetweb", 3306);
                if ($c->connect_errno) {
                    //si erreur de connection
                    return "Oups... Problème de connexion";
                }
                $res = $c-> query($sql);
                // fermeture connection
                $c->close();
                //retour du résultat
                return $res;
            }
     
     function closemysql($c)  {
     	$c->close();
     }
     ?>

    Est-ce que quelqu'un aurait une petite piste par hasard ?

    Mickamax

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Ta fonction executeQuery prend un seul paramètre (la requête) alors que tu l'appelles avec 2 paramètres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (executeQuery($c, "insert into client (Nom, Prenom,Adresse,Ville,Code_postal,Telephone,MDP,Mail,Date_naissance) values ('$Nom','$Prenom','$Adresse','$Ville','$Code_postal',$Telephone,'$MDP','$Mail','$Date_naissance')")) {
    // ...
    function executeQuery($sql) {
       // creation de la connection
        $c = new mysqli("localhost", "root","", "projetweb", 3306);
    Je pense qu'il ya un décalage entre les deux versions
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2019
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Biens de consommation

    Informations forums :
    Inscription : Janvier 2019
    Messages : 101
    Par défaut
    Hello, désolé de répondre aussi tard...

    J'ai cherché un peu partout sur le net et pas moyen de trouver une solution à mon problème... Aurais-tu une idée ?

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Oui : tu as une fonction qui prend un paramètre et à laquelle tu passes 2 paramètres. C'est comme essayer d'insérer 2 clés dans une seule serrure : aucune chance que ça fonctionne.
    Mets ton code en cohérence, re-teste et reviens nous voir ensuite.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/08/2006, 10h19
  2. message d'erreur dans sous formulaire
    Par tojiji dans le forum Access
    Réponses: 6
    Dernier message: 28/07/2006, 12h09
  3. [MySQL] Erreur dans mon formulaire
    Par rane dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 19/07/2006, 14h06
  4. Réponses: 2
    Dernier message: 06/07/2006, 08h22
  5. [débutant] Erreur dans les formulaires
    Par mytika dans le forum Access
    Réponses: 7
    Dernier message: 18/05/2006, 15h57

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