Probleme de connexion a une base de donnée

Par hdfs99, il y a 8 ans


Bonjour tt le monde

J'ai un probleme de connection Voila mon code:

<?php class etudiant{ // Tes attributs private $numero; private $nom; private $note; // Ce qui me semblent-être des setters public function makes($numero,$nom,$note){ $this->numero = $numero; $this->nom = $nom; $this->note= $note; } // Ta fonction qui renvoie les informations necessaires de la connection PDO. public function getcone(){ $bdd= new PDO('mysql:host=localhost;dbname=ecole','root',''); return $bdd; } // Ta fonction inserted, duquel tu recupères les informations de ta connection PDO à partir duquel tu effectues ta requêtes. public function inserted(){ $bdd = $this->getcone(); $req= $bdd->prepare("INSERT INTO etudiant(numero,nom,note) VALUES(:numero, :nom, :note)"); $req->bindValue(":numero", $this->numero, PDO::PARAM_INT); $req->bindValue(":nom", $this->nom, PDO::PARAM_STR); $req->bindValue(":note", $this->note, PDO::PARAM_INT); $req->execute(); } }

je voudrais savoir comment faire pour connecter une class par exemple class etudiant qui a 3 attrubut a une base de donner

quand je execute mon programme ca n'as pas marcher je comprend pas pourquoi?

9 réponses

Arbiter0x, il y a 8 ans

Pas complètement sur mais je pense que dans le bindValue, le nom de la variable devrait être sans le double point; donc aulieu de ":numero", il faudrait écrir "numero"

Jinou, il y a 8 ans

Tu as une erreur quelconque qui pourrait nous aider ?
Est tu sur que tes champs dans ta table porte bien le nom "numero", "nom" et "note" ?
Quand tu insert un numéro, tu ne dois pas mettre d'espace dans le numéro ni de tiret ni quoi que ce soit qui ne soit pas un chiffre, car tu force l'entré en INT.

Twentyfour, il y a 8 ans
  1. Vérifie que ta table ne s'appelle pas etudiants avec un "s".
  2. Si numero est une clé primaire auto incrémentée comme je le pense, pourquoi l'insérer manuellement ?
hdfs99, il y a 8 ans

Merci les amis
nn je pense que le probleme dans l'instanciation de l'objet je sais pas comment il fonctionne en php comment je vais appeler les fonction c'est ca le probleme?

Arbiter0x, il y a 8 ans

Ah bah oui, j'ai complétement zappé mais tu as raison. Tu as appelé ton constructeur "make" mais en php c'est "__construct"

Jinou, il y a 8 ans

Ah oui bien vu x)

hdfs99, il y a 8 ans

Merci les amis

celionor, il y a 8 ans

Le constructeur n'est pas obligatoire en php, même si dans ton cas, il serait approprié.

Tu pourrais très bien faire ceci

$etudiant = new etudiant(); $etudiant->make('numero', 'nom', 'note'); $etudiant->inserted();

Par contre, tu n'as aucun retour de tes méthodes ce qui va t'empêcher de connaitre le comportement de celles-ci,
et getcone() devrait être en privé car l'utilisateur n'a pas a appeller cette méthode qui est propre à ta classe.

hdfs99, il y a 8 ans

Merci celionor