Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Installation
Installation Forum d'entraide sur les problèmes liés à l'installation de MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/05/2006, 16h01   #1
Candidat au titre de Membre du Club
 
Inscription : décembre 2004
Messages : 51
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 51
Points : 10
Points : 10
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 :
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.
Ethylene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 16h06   #2
Expert Confirmé
 
Avatar de KiLVaiDeN
 
Inscription : octobre 2003
Messages : 2 714
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 2 714
Points : 2 689
Points : 2 689
Et en ajoutant le close, aucun changement ?

Code :
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();
    }
__________________
K
KiLVaiDeN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 16h17   #3
Candidat au titre de Membre du Club
 
Inscription : décembre 2004
Messages : 51
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 51
Points : 10
Points : 10
Citation:
Envoyé par KiLVaiDeN
Et en ajoutant le close, aucun changement ?

Code :
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 :
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...
Ethylene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 16h22   #4
Expert Confirmé
 
Avatar de KiLVaiDeN
 
Inscription : octobre 2003
Messages : 2 714
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 2 714
Points : 2 689
Points : 2 689
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 :
$prepare = $this->db->prepare("INSERT INTO a VALUES ('', ?)");
Si ta table a contient uniquement ces deux champs.
__________________
K
KiLVaiDeN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 16h28   #5
Candidat au titre de Membre du Club
 
Inscription : décembre 2004
Messages : 51
Détails du profil
Informations forums :
Inscription : décembre 2004
Messages : 51
Points : 10
Points : 10
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?
Ethylene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/05/2006, 16h57   #6
Expert Confirmé
 
Avatar de KiLVaiDeN
 
Inscription : octobre 2003
Messages : 2 714
Détails du profil
Informations forums :
Inscription : octobre 2003
Messages : 2 714
Points : 2 689
Points : 2 689
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+
__________________
K
KiLVaiDeN est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h44.


 
 
 
 
Partenaires

Hébergement Web