diff options
Diffstat (limited to 'easyCRUD/easyCRUD.class.php')
-rw-r--r-- | easyCRUD/easyCRUD.class.php | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/easyCRUD/easyCRUD.class.php b/easyCRUD/easyCRUD.class.php new file mode 100644 index 0000000..3e4c647 --- /dev/null +++ b/easyCRUD/easyCRUD.class.php @@ -0,0 +1,96 @@ +<?php +/** +* Easy Crud - This class kinda works like ORM. Just created for fun :) I might make my own framework one day. +* +* @author Author: Vivek Wicky Aswal. (https://twitter.com/#!/VivekWickyAswal) +* @version 0.1a +*/ +require_once("../Db.class.php"); +class Crud { + + private $db; + + public $variables; + + public function __set($name,$value){ + $this->variables[$name] = $value; + } + + public function __get($name) + { + if(array_key_exists($name,$this->variables)) { + return $this->variables[$name]; + } + + $trace = debug_backtrace(); + trigger_error( + 'Undefined property via __get(): ' . $name . + ' in ' . $trace[0]['file'] . + ' on line ' . $trace[0]['line'], + E_USER_NOTICE); + return null; + } + + public function __construct($data = array()) { + $this->db = new DB(); + $this->variables = $data; + } + + public function save($id = "0") { + $this->variables[$this->pk] = (empty($this->variables[$this->pk])) ? $id : $this->variables[$this->pk]; + + $fieldsvals = ''; + $columns = array_keys($this->variables); + + foreach($columns as $column) + { + if($column !== $this->pk) + $fieldsvals .= $column . " = :". $column . ","; + } + + $fieldsvals = substr_replace($fieldsvals , '', -1); + + if(count($columns) > 1 ) { + $sql = "UPDATE " . $this->table . " SET " . $fieldsvals . " WHERE " . $this->pk . "= :" . $this->pk; + return $this->db->query($sql,$this->variables); + } + } + + public function create() { + $bindings = $this->variables; + + if(!empty($bindings)) { + $fields = array_keys($bindings); + $fieldsvals = array(implode(",",$fields),":" . implode(",:",$fields)); + $sql = "INSERT INTO ".$this->table." (".$fieldsvals[0].") VALUES (".$fieldsvals[1].")"; + } + else { + $sql = "INSERT INTO ".$this->table." () VALUES ()"; + } + + return $this->db->query($sql,$bindings); + } + + public function delete($id = "") { + $id = (empty($this->variables[$this->pk])) ? $id : $this->variables[$this->pk]; + + if(!empty($id)) { + $sql = "DELETE FROM " . $this->table . " WHERE " . $this->pk . "= :" . $this->pk. " LIMIT 1" ; + return $this->db->query($sql,array($this->pk=>$id)); + } + } + + public function find($id = "") { + $id = (empty($this->variables[$this->pk])) ? $id : $this->variables[$this->pk]; + + if(!empty($id)) { + $sql = "SELECT * FROM " . $this->table ." WHERE " . $this->pk . "= :" . $this->pk . " LIMIT 1"; + $this->variables = $this->db->row($sql,array($this->pk=>$id)); + } + } + + public function all(){ + return $this->db->query("SELECT * FROM " . $this->table); + } +} +?>
\ No newline at end of file |