Last active
May 17, 2020 10:10
-
-
Save XxAnonimeKxX/b51abf6d81649cf3b0ad1fa1d28aed25 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| class DB{ | |
| private static $_instance = null; | |
| private $_pdo, | |
| $_query, | |
| $_error=false, | |
| $_results, | |
| $_count=0; | |
| public function __construct(){ | |
| try{ | |
| $this->_pdo = new PDO('mysql:host=localhost;dbname=wakamegroup','root',''); | |
| //echo "connected"; | |
| }catch(PDOException $e){ | |
| die($e->getMessege()); | |
| } | |
| } | |
| public static function getInstance(){ | |
| if(!isset(self::$_instance)){ | |
| self::$_instance = new DB(); | |
| } | |
| return self::$_instance; | |
| } | |
| public function query($sql, $params = array()){ | |
| $this->_error = false; | |
| if($this->_query = $this->_pdo->prepare($sql)){ | |
| $x = 1; | |
| if(count($params)){ | |
| foreach($params as $param){ | |
| $this->_query->bindValue($x, $param); | |
| $x++; | |
| } | |
| } | |
| if($this->_query->execute()){ | |
| $this->_results = $this->_query->fetchAll(PDO::FETCH_OBJ); | |
| $this->_count = $this->_query->rowCount(); | |
| } | |
| else{ | |
| $this->_error = false; | |
| } | |
| } | |
| return $this; | |
| } | |
| private function action($action, $table, $where=array()){ | |
| if(count($where)===3){ | |
| $operators = array('=','>','<','<=','>='); | |
| $field = $where[0]; | |
| $operator = $where[1]; | |
| $value = $where[2]; | |
| if(in_array($operator, $operators)){ | |
| $sql = "{$action} FROM {$table} WHERE {$field} {$operator} ?"; | |
| if(!$this->query($sql,array($value))->error()){ | |
| return $this; | |
| } | |
| } | |
| } | |
| return false; | |
| } | |
| public function get($table, $where){ | |
| return $this->action('SELECT *', $table, $where); | |
| } | |
| public function delete($table, $where){ | |
| return $this->action('DELETE *', $table, $where); | |
| } | |
| public function insert($table, $fields = array()){ | |
| $keys = array_keys($fields); | |
| $values = ''; | |
| $x = 1; | |
| foreach($fields as $field){ | |
| $values .= '?'; | |
| if($x < count($fields)){ | |
| $values .= ', '; | |
| } | |
| $x++; | |
| } | |
| $sql = "INSERT INTO users " . "(`" . implode('` , `' , $keys) . "`) VALUES ({$values})"; | |
| if(!$this->query($sql, $fields)->error()){ | |
| return true; | |
| } | |
| return false; | |
| } | |
| public function update($table, $id, $fields){ | |
| $set = ''; | |
| $x = 1; | |
| foreach($fields as $name => $value){ | |
| $set .= "{$name} = ?"; | |
| if($x < count($fields)){ | |
| $set .= ', '; | |
| } | |
| $x++; | |
| } | |
| $sql = "UPDATE {$table} SET {$set} WHERE id = {$id}"; | |
| if(!$this->query($sql,$fields)->error()){ | |
| return true; | |
| } | |
| return false; | |
| } | |
| public function results(){ | |
| return $this->_results; | |
| } | |
| public function first(){ | |
| return $this->results()[0]; | |
| } | |
| public function error(){ | |
| return $this->_error; | |
| } | |
| public function count(){ | |
| return $this->_count; | |
| } | |
| } | |
| ?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment