WHAT'S NEW?
Loading...

Learning PHP Object Oriented Programming Beyond the basic.


Note: This is intended for my personal use only just incase I will for get this things during my PHP Test. However, I you find this helpful to you, feel free to copy the code. This set of code is base from what I learned from lynda tutorial beyond the basic. The video has been really useful to me and learn alot of things from it.
//Config.php



defined('DB_SERVER') ? null : define("DB_SERVER", "localhost");
defined('DB_USER') ? null : define("DB_USER", "root");
defined('DB_PASS') ? null : define("DB_PASS", "admin");
defined('DB_NAME') ? null : define("DB_NAME", "photo_gallery");


?>


//Database.php require_once("config.php"); class MysqlDatabase{     private $connection;     public $last_query;     private $magic_qoutes_active;     private $new_enough_php;     function __construct(){         $this->open_connection();         $this->magic_quotes_active = get_magic_quotes_gpc();     $this->new_enough_php = function_exists( "mysql_real_escape_string" ); // i.e. PHP >= v4.3.0                  }     public function open_connection(){         $this->connection = mysql_connect(DB_SERVER,DB_USER,DB_PASS);         if(!$this->connection){             die("Database connection failed:" .mysql_error());             }         else{             $db_select = mysql_select_db(DB_NAME, $this->connection);             if(!$db_select){                 die("Database selection failed:". msql_error());                                  }                          }                           }     public function close_connection(){         if(isset($this->connection)){             mysql_close($this->connection);             unset($this->connection);                                       }                           }     public function query($sql){         $this->last_query = $sql;         $result = mysql_query($sql,$this->connection);                  $this->confirm_query($result);                  return $result;              }     //Database Neutral Methods               public function insert_id(){         return mysql_insert_id($this->connection);         }     public function fetch_array($result){         return mysql_fetch_array($result);         }     public function affected_rows(){         return mysql_affected_rows ($result);         }     public function num_rows($result){         return mysql_num_rows($result);         }          private function confirm_query($result){                  if(!$result){                          $output = "Database query failed:". mysql_error()." ";         //    $output .= "Last SQL Query: ".$this->last_query;             die($output);             }                  }         public function escape_value( $value ) {          if( $this->new_enough_php ) { // PHP v4.3.0 or higher         // undo any magic quote effects so mysql_real_escape_string can do the work         if($this->magic_quotes_active ) { $value = stripslashes( $value ); }         $value = mysql_real_escape_string( $value );     } else { // before PHP v4.3.0         // if magic quotes aren't already on then add slashes manually         if( !$this->magic_quotes_active ) { $value = addslashes( $value ); }         // if magic quotes are active, then the slashes already exist     }     return $value; }          } $database = new MysqlDatabase(); $db = & $database; ?>
//Functions.php function strip_zeros($marked_string=""){     $no_zeros = str_replace('*0','',$marked_string);     $clean_string = str_replace ('*','',$no_zeros);     return $clean_string;          } function redirect_to($location = NULL){     if($location != NULL){         header ("Location: {$location}");         exit;              }          }      function output_message($message=""){     if(!empty($message)){         return "
{$message}
";     }     else     return "";     }     ?>
//User.php require_once('database.php'); class User{     public $id;     public $username;     public $password;     public $first_name;     public $last_name;                    public static function find_all()         {         global $database;         return self::find_by_sql("Select * FROM users");         }     public static function find_by_id($id=0)         {         global $database;         $result_set = $database->query("SELECT * FROM users WHERE id={$id}");         $found = $database->fetch_array($result_set);         return $found;         }     public static function find_by_sql($sql=""){         global $database;         $result_set = $database->query($sql);         return $result_set;                  }     public function full_name(){         if(isset($this->first_name) && isset($this->last_name)){             return $this->first_name." ".$this->last_name;                          }         }     private static function instantiate($result){                  $object                 = new self;         //$object->id             = $record['id'];         //$object->username     = $record['username'];         //$object->password     = $record['password'];         //$object->first_name     = $record['first_name'];         //$object->last_name     = $record['last_name'];                           foreach($record as $attribute=>$value){                      if($object->has_attribute($attribute)){             $object->$attribute = $value;             }             }         return $object;                  }     private function has_attribute($attribute){           // get_object_vars returns an associative array with all attributes       // (incl. private ones!) as the keys and their current values as the value       $object_vars = get_object_vars($this);       // We don't care about the value, we just want to know if the key exists       // Will return true or false       return array_key_exists($attribute, $object_vars);                  }     } ?>
//Index.php require_once("../includes/database.php"); require_once("../includes/user.php"); $record = User::find_by_id(1); echo $user->username; echo "
"; echo $user->full_name(); ?>

2 comments : Leave Your Comments

  1. Thanks for the coding. Me and friend have been looking of this codes last one week finally i got it from this article. Very helpful post.

    Hire PHP Programmer

    ReplyDelete
  2. There are lots of useful information in these comment. I am so glad I have come to it and i will track back for updates.

    ReplyDelete