Skip to content

Instantly share code, notes, and snippets.

@XxAnonimeKxX
Last active May 17, 2020 10:10
Show Gist options
  • Select an option

  • Save XxAnonimeKxX/b51abf6d81649cf3b0ad1fa1d28aed25 to your computer and use it in GitHub Desktop.

Select an option

Save XxAnonimeKxX/b51abf6d81649cf3b0ad1fa1d28aed25 to your computer and use it in GitHub Desktop.
<?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