call to a member function select() on a non object.
| From: | nihilism machine | Date: | Wed, 30 Jan 2008 01:40:56 +0000 |
| Subject: | call to a member function select() on a non object. | ||
| Groups: | php.general | ||
| Request: | Send a blank email to php-general+get-268298@lists.php.net to get a copy of this message | ||
I amn trying to use my db class in my auth class, but i get the error: call to a member function select() on a non object
<?php
class db {
// Members
private $db_user = "mydbuser";
private $db_pass = "mypassword";
private $db_name = "mydb";
private $db_server = "myhost.com";
private $link;
private $result_id;
// Methods
public function __construct() {
$this->connect();
}
// Connect to MySQL Server
private function connect() {
$this->link = mysql_connect($this->db_server,$this->db_user,$this-
db_pass) or die("ERROR - Cannot Connect to DataBase"); mysql_select_db($this->db_name,$this->link) or die("ERROR: Cannot Select Database (" . $this->db_name . ")");} // Disconnect from MySQL Server private function disconnect() { mysql_close($this->link); } // MySQL Select public function select($sql) { $this->result_id = $this->query($sql); if($this->result_id){ $rows = $this->fetch_rows(); } return $rows; } // Insert into MySQL public function insert($params) { extract($params); $sql = 'INSERT INTO '.$table.' ('.$fields.') VALUES ('.$values.')'; $this->query($sql); if($this->result_id){ $affected_rows = $this->affected_rows(); } return $affected_rows; } // Delete from MySQL public function delete($params) { extract($params); $sql = 'DELETE FROM '.$table.' WHERE '.$where; if (is_numeric($limit)) { $sql .= ' LIMIT '.$limit; } $this->query($sql); if($this->result_id){ $affected_rows = $this->affected_rows(); } return $affected_rows; } // Update MySQL public function update($params) { extract($params); $sql = 'UPDATE '.$table.' SET '.$values.' WHERE '.$where; if(is_numeric($limit)){ $sql .= ' LIMIT '.$limit; } $this->query($sql); if($this->result_id){ $affected_rows = $this->affected_rows(); } return $affected_rows; } // MySQL Query private function query($sql) { $this->result_id = mysql_query($sql); return $this->fetch_rows(); } // MySQL Fetch Rows private function fetch_rows() { $rows = array(); if($this->result_id){ while($row = mysql_fetch_object($this->result_id)){ $rows[] = $row; } } return $rows; } // MySQL Affected Rows private function affected_rows() { return mysql_affected_rows($this->link); } // MySQL Affected Rows private function num_rows() { return mysql_num_rows($this->link); } // MySQL Affected Rows private function select_id() { return mysql_insert_id($this->link); } // Destruct! public function __destruct() { $this->disconnect(); } } ?> <?php require_once("db.class.php"); class auth { public $DB; public $UserID; public $AdminLevel; public $FirstName; public $LastName; public $DateAdded; public $MobileTelephone; public $LandLineTelephone;
// Connect to the databasepublic function __construct() { $DB = new db(); }
// Attempt to login a userpublic function CheckValidUser($Email, $Password) { $PasswordEncoded = $this->encode($Password); $rows = $DB->select("SELECT * Users WHERE Email='$Email', AND Password='$PasswordEncoded'"); if ($DB->num_rows > 0) { $this->UserID = $row['ID']; $this->AdminLevel = $row['Admin_Level']; $this->FirstName = $row['First_Name']; $this->LastName = $row['Last_Name']; $this->DateAdded = $row['Date_Added']; $this->MobileTelephone = $row['Telephone_Mobile']; $this->LandLineTelephone = $row['Telephone_Land_Line']; // User info stored in Sessions session_start(); $_SESSION['Status'] = "loggedIn"; $_SESSION['ID'] = $row['ID']; $_SESSION['Email'] = $row['Email']; $_SESSION['AdminLevel'] = $row['Admin_Level']; $_SESSION['LandLine'] = $row['Telephone_Land_Line']; $_SESSION['MobileTelephone'] = $row['Telephone_Mobile']; $_SESSION['FirstName'] = $row['First_Name']; $_SESSION['LastName'] = $row['Last_Name']; } else { return false; } } public function encode($str) { return md5(base64_encode($str)); } } ?> <?php $myauth = new auth(); $x = $myauth->CheckValidUser("test@test.com", "password"); echo $x; ?>