php - How to use static property and method on database connection class? -


can identify wrong lines of code? tried make db connection static class can use globally in class without having use $this->pdo.

the error shown is:

fatal error: call member function prepare() on non-object in c:\wamp\www\carrental\index.php on line 44

<?php class connection {     public static $servername = "localhost";     public static $username = "root";     public static $password = "";     public static $dbname = "carrental";     public static $port="3306";     public static $pdo;      public static function addconnection()     {       try {           self::$pdo = new pdo("mysql:host=self::$servername;port=self::$port;dbname=self::$dbname", self::$username, self::$password);           self::$pdo->setattribute(pdo::attr_errmode, pdo::errmode_exception);       } catch(pdoexception $e) {           echo 'error: ' . $e->getmessage();       }        self::$pdo->query("use self::$dbname");       return self::$pdo;     } } class car  {     public $name;     public $maker;     public $type;     public $colour;     public $passanger;      public function __construct($param1,$param2,$param3,$param4,$param5)     {         $this->name=$param1;         $this->maker=$param2;         $this->type=$param3;         $this->colour=$param4;         $this->passanger=$param5;      }     public function addcar()     {         $sql="insert car(car_name,car_maker,car_type,car_colour,num_passanger)values('{$this->name}','{$this->maker}', '{$this->type}','{$this->colour}','{$this->passanger}')";         $stmt =connection::$pdo->prepare($sql);         $stmt->execute();         echo "data inserted!";     } }  $car1=new car("honda accord","honda","5 wheeler","red",9); $car1->addcar();  ?> 

as @rizier123 said in comment, didn't call addconnection(). so, might need this, inside addcar() method of class car

$sql="insert car(car_name,car_maker,car_type,car_colour,num_passanger)values('{$this->name}','{$this->maker}', '{$this->type}','{$this->colour}','{$this->passanger}')";  $pdo_obj = connection::addconnection(); //get pdo object $stmt = $pdo_obj->prepare($sql); $stmt->execute(); echo "data inserted!"; 

Comments