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

Installation MySQL Discussion :

Problème requête paramétrée mysqli


Sujet :

Installation MySQL

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 54
    Points : 35
    Points
    35
    Par défaut Problème requête paramétrée mysqli
    Salut à tous!

    Donc bon je bosse sous PHP5 et je me retrouve devant une erreur un peu emmerdifiante sur les bords...
    A savoir si je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
        public function connect(){
            $this->db = new mysqli($this->host, $this->user, $this->password, 'test');
        }
     
        public function addDonor($donor){
            $prepare = $this->db->prepare("INSERT INTO a (id, nom) VALUES ('', ?)");
            $prepare->bind_param('s', $donor->getNom());
            $prepare->execute();
            echo $donor->getNom();
        }
    PHP ne me signale aucunes erreurs cependant si je vais vérifier sur ma table qu'une entrée a été créée, j'ai bien une ligne incrémentée mais le champ "nom" est vide!! (j'ai également vérifié, $donor->getNom() retourne bien une valeur)

    Si vous y voyez un peu plus clair que moi.

  2. #2
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 860
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 860
    Points : 3 445
    Points
    3 445
    Par défaut
    Et en ajoutant le close, aucun changement ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        public function addDonor($donor){
            $prepare = $this->db->prepare("INSERT INTO a (id, nom) VALUES ('', ?)");
            $prepare->bind_param('s', $donor->getNom());
            $prepare->execute();
            $prepare->close();
            echo $donor->getNom();
        }

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 54
    Points : 35
    Points
    35
    Par défaut
    Citation Envoyé par KiLVaiDeN
    Et en ajoutant le close, aucun changement ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        public function addDonor($donor){
            $prepare = $this->db->prepare("INSERT INTO a (id, nom) VALUES ('', ?)");
            $prepare->bind_param('s', $donor->getNom());
            $prepare->execute();
            $prepare->close();
            echo $donor->getNom();
        }
    Malheureusement non car cette méthode est appelée dans une autre méthode qui fait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        public function addDonor($donor){
            try {
                $this->SQL->connect();
                $this->SQL->addDonor($donor);
                $this->SQL->close();
            } catch (nphException $e) {
                nphExceptions::Rapport($e);
            }
        }
    Donc ma connexion est bien fermée...

  4. #4
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 860
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 860
    Points : 3 445
    Points
    3 445
    Par défaut
    Ok,

    Dans tous les exemples sur mysqli ( je n'utilise pas cette bdd ) la syntaxe du insert ne précise pas la liste des champs, essaies donc avec ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $prepare = $this->db->prepare("INSERT INTO a VALUES ('', ?)");
    Si ta table a contient uniquement ces deux champs.

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 54
    Points : 35
    Points
    35
    Par défaut
    Non plus... J'avais testé déjà tous ces petites nuances mais sans succès...
    Je me demandes si ça pourrait pas venir de mon environnement...
    J'utilise wamp 5.0 ou 5.1, tu sais pas si des bugs à ce niveau là sont connus avec cette installation?

  6. #6
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 860
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 860
    Points : 3 445
    Points
    3 445
    Par défaut
    Hmm je ne vois pas pourquoi ça planterait même sous WAMP.. Y-at-il une notion de transactions sous mysqli ? ( je crois que non )

    id est un entier ? pourquoi mets-tu '' dedans ?

    Quelle est la structure exacte de ta table ?

    A+

Discussions similaires

  1. Probléme requéte paramétrée par rapport au TableAdapter.fillby
    Par Damiens29 dans le forum Windows Forms
    Réponses: 10
    Dernier message: 14/03/2013, 10h08
  2. Problème requête paramétrée
    Par jacko842 dans le forum VB.NET
    Réponses: 2
    Dernier message: 19/12/2012, 10h26
  3. [AC-2002] Problème requête paramétrée Formulaire
    Par Scantf dans le forum VBA Access
    Réponses: 2
    Dernier message: 02/12/2011, 12h02
  4. [AC-2003] Problème Requête paramétrée DAO
    Par paidge dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 17/11/2010, 14h56
  5. Problème requête paramétrée
    Par mechatikhaled dans le forum Bases de données
    Réponses: 4
    Dernier message: 19/03/2008, 23h55

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