rishi02 Posted October 22, 2014 Share Posted October 22, 2014 I am getting this error while building OOP portal. Fatal error: Call to a member function count() on a non-object in C:\Users\Rishi\Documents\xampp\htdocs\PDO\Pitch_It\index.php on line 6 My index.php file: <?php require_once 'core/init.php'; $map = DB::getInstance()->get('maps', array('description','=','Rishi')); //echo '<pre>', var_dump($map), '</pre>'; if(!$map->count()){ echo "No results"; } else { echo "Yup"; } ?> My DB class: <?php class DB { private static $_instance = null; private $_pdo, $_query, $_error = false, $_results, $_count = 0; private function __construct(){ try{ $this->_pdo = new PDO('mysql:host='.Config::get('mysql/host').';dbname='.Config::get('mysql/db'),Config::get('mysql/username'),Config::get('mysql/password')); } catch(PDOException $e){ die($e->getMessage()); } } public static function getInstance() { if(!isset(self::$_instance)) { self::$_instance = new DB(); } return self::$_instance; } public function query($sql, $params = array()) { $this ->_error = false; if($this->_query = $this->_pdo->prepare($sql)){ if(count($params)){ $x = 1; foreach($params as $param){ $this->_query->bindValue($x, $param); $x++; } } if($this->_query->execute()){ $this->_results = $this->_query->fetchAll(PDO::FETCH_OBJ); $this->_count = $this->_query->rowCount(); } else{ $this->_error = true; } } return $this; } public function action($action,$table, $where = array()){ if(count($where) === 3){ $operators = array('=','>','<','>=','<='); $field = $where[0]; $operator = $where[1]; $value = $where[2]; if (in_array($operator, $operators)) { $sql = "{action} FROM {$table} WHERE {$field}{$operator} ?"; if(!$this->query($sql, array($value))->error()){ return $this; } } } return false; } public function get($table,$where){ return $this->action('SELECT *', $table, $where); } public function delete($table, $where = array()){ return $this->action('DELETE', $table, $where); } public function error() { return $this->_error; } public function count() { return $this->_count; } } please help me out. Link to comment https://forums.phpfreaks.com/topic/291978-call-to-a-member-function-on-a-non-object/ Share on other sites More sharing options...
QuickOldCar Posted October 22, 2014 Share Posted October 22, 2014 Probably has a null value first check it if ($map){ if (!$map){ if ($map && $map->count() > 0) { echo "Yup"; } else { echo "No results"; } Link to comment https://forums.phpfreaks.com/topic/291978-call-to-a-member-function-on-a-non-object/#findComment-1494368 Share on other sites More sharing options...
rishi02 Posted October 22, 2014 Author Share Posted October 22, 2014 Yaa.. You are right. $map it self is not creating. if($map){ echo "Dude"; } else{ echo "No"; } Giving No. How to sort it out? Link to comment https://forums.phpfreaks.com/topic/291978-call-to-a-member-function-on-a-non-object/#findComment-1494373 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.