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. Quote 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"; } Quote 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 (edited) Yaa.. You are right. $map it self is not creating. if($map){ echo "Dude"; } else{ echo "No"; } Giving No. How to sort it out? Edited October 22, 2014 by rishi02 Quote 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
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.