1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
<?php
/**
* Easy Crud - This class kinda works like ORM. Just created for fun :)
*
* @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 __construct($data = array()) {
$this->db = new DB();
$this->variables = $data;
}
public function __set($name,$value){
if(strtolower($name) === $this->pk) {
$this->variables[$this->pk] = $value;
}
else {
$this->variables[$name] = $value;
}
}
public function __get($name)
{
if(is_array($this->variables)) {
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 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);
}
}
?>
|