Bonjour à tous,

j'ai recu ce problem :
Fatal error: Call to a member function prepare() on null in C:\xampp\htdocs\w\jquery\insertJquery\classo.php on line 31

<?php 

        class classo
        {
            function connection(){
                $db=new pdo ('mysql:host=localhost;dbname=pronostic','root','');
                $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);

            }

            function insererDonne($pseudo,$password)
            {      
                        global $db;
                        classo::connection();     
                $donne=array(
                    'user' =>$pseudo,
                    'pass' =>$password 
                    );

                $req="INSERT INTO users (user,pass) VALUES (:user,:pass)";
                $sql=$db->prepare($req);
                $sql->execute($donne);

            }
        }

$data=new classo();
$data->insererDonne('Jean','123456');
 ?>

2 réponses


Carouge10
Réponse acceptée

Bonjour,

L'utilisation des fonctions d'un classe ne se fait pas ainsi.

<?php
class machin {

    public $db = null; // Il y a aussi private et protected à la place de public..... ce qui sera à étudier

    function connection() {
        $this->db = new PDO(...);
        $this->db->set.....;
    }

    function insererDonne($pseudo,$password)
            {  
                        $this->connection();     
                $donne=array(
                    'user' =>$pseudo,
                    'pass' =>$password 
                    );

                $req="INSERT INTO users (user,pass) VALUES (:user,:pass)";
                $sql = $this->db->prepare($req);
                $sql->execute($donne);

            }
}

Merci merci!! beaucoup pour votre aide.
et je n'ai plus de problème !!!