summaryrefslogtreecommitdiffstats
path: root/easyCRUD/easyCRUD.class.php
diff options
context:
space:
mode:
Diffstat (limited to 'easyCRUD/easyCRUD.class.php')
-rw-r--r--easyCRUD/easyCRUD.class.php96
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