📁 PHP Dosya Yöneticisi
/
/
home
/
demodesigncom
/
e-ticaretv9.demodesign.com.tr
/
includes
/
lib
📝
db.php
← Geri Dön
<?php class DB { static $connect; protected $db_database = DB_DATABASE; protected $db_host = DB_HOST; protected $db_username = DB_USERNAME; protected $db_password = DB_PASSWORD; protected $db_name = DB_NAME; protected $db_prefix = DB_PREFIX; //parameters protected $error = null; protected $last_id = null; protected $query = null; protected $from = null; protected $select = '*'; protected $where = null; protected $group = null; protected $order = null; protected $limit = null; protected $pagination_type = false; protected $per_page = 0; protected $get_arr = null; function __construct() { try { self::$connect = new PDO("{$this->db_database}:host={$this->db_host};dbname={$this->db_name};charset=utf8mb4", "{$this->db_username}", "{$this->db_password}"); self::$connect->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); self::$connect->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES utf8mb4"); } catch ( PDOException $e ){ echo '<b>Veritabanı bağlantısı sağlanamadı! - Hata Kodu: </b>'.$e->getMessage(); exit; } } public function now($type='datetime') { switch($type) { case 'timestamp'; return time(); case 'date'; return date('m-d'); case 'datetime'; return date('Y-m-d H:i:s'); default: return date('Y-m-d H:i:s'); } } public function m_empty($data) { if($data=='' and $data!='0') { return true; } else { return false; } } public function query($query,$arr=false) { $this->reset(); if($query!="") { try { $run = self::$connect->prepare($query); if($arr) { if(is_array($arr)) { $run->execute($arr); return $run; } else { $run->execute(array($arr)); return $run; } } else { $run->execute(); return $run; } } catch (PDOException $e) { $this->error = $e->getMessage(); return false; } } return false; } public function table($table) { $this->from = $this->db_prefix . $table; return $this; } public function select($fields) { $this->select = $fields; return $this; } public function where($field,$op='=',$values,$and='AND', $end_bracket='') { if(!$this->m_empty($field)) { if(is_null($this->where)) { $this->where="{$field} {$op} ? {$end_bracket}"; $this->get_arr[] = $values; } else { $this->where.=" {$and} {$field} {$op} ? {$end_bracket}"; $this->get_arr[] = $values; } } return $this; } public function where_set($field,$op='=',$values,$and="AND", $end_bracket='') { if(!$this->m_empty($field) and !$this->m_empty($values)) { if(is_null($this->where)) { $this->where="{$field} {$op} {$values} {$end_bracket}"; } else { $this->where.=" {$and} {$field} {$op} {$values} {$end_bracket}"; } } return $this; } public function group($fields) { if(is_null($this->group)) { $this->group = $fields; } else { $this->group .=",{$fields}"; } return $this; } public function order($field,$type="desc") { if(!is_null($field)) { if(is_null($this->order)) { if(strtolower($field)=='rand()') { $this->order = $field; } else { $this->order = $field.' '.strtoupper($type); } } else { if(strtolower($field)=='rand()') { $this->order .=",{$fields}"; } else { $this->order .= ','.$field.' '.strtoupper($type); } } } return $this; } public function limit($start,$end=null) { if(is_null($end)) { if(is_numeric($start)) { $this->limit = $start; } } else { if(is_numeric($start) and is_numeric($end)) { $this->limit = "{$start},{$end}"; } } return $this; } public function pagination($per_page) { if(is_numeric($per_page)) { $this->per_page = $per_page; $this->pagination_type = true; } return $this; } public function get() { $query = "SELECT {$this->select} FROM {$this->from}"; if(!is_null($this->where)) { $query.=" where {$this->where}"; } if(!is_null($this->group)) { $query.=" group by {$this->group}"; } if(!is_null($this->order)) { $query.=" order by {$this->order}"; } if($this->pagination_type) { $c_per_page = $this->per_page; $c_arr = $this->get_arr; $extra_query = preg_replace("#SELECT (.*?) FROM#","SELECT COUNT(*) as total_count FROM",$query); $all = $this->query($extra_query,$this->get_arr); if($all) { $total_count = $all->fetchAll(PDO::FETCH_ASSOC)[0]['total_count']; $page_count = ceil($total_count/$c_per_page); $current_page = (integer)m_u_g(DB_PAGINATION_GET) ? (integer)m_u_g(DB_PAGINATION_GET) : 1; $current_limit=($current_page - 1) * $c_per_page; $query = $query." limit {$current_limit},{$c_per_page}"; $current_rows = $this->query($query,$c_arr); $data = $current_rows->fetchAll(PDO::FETCH_ASSOC); $return = array(); $return['total_count'] = $total_count; $return['current_count'] = count($data); $return['total_page'] = $page_count; $return['current_page'] = $current_page; $return['data'] = $data; return $return; } else { return false; } } else { if(!is_null($this->limit)) { $query.=" limit {$this->limit}"; } $gets = $this->query($query,$this->get_arr); if($gets) { $data = $gets->fetchAll(PDO::FETCH_ASSOC); $return = array(); $return['total_count'] = count($data); $return['data'] = $data; return $return; } else { return false; } } } public function get_var($field) { if($this->m_empty($field)) { return false; } else { $query = "SELECT {$field} FROM {$this->from}"; if(!is_null($this->where)) { $query.=" where {$this->where}"; } if(!is_null($this->order)) { $query.=" order by id desc limit 1"; } $gets = $this->query($query,$this->get_arr); if($gets) { return $gets->fetchAll(PDO::FETCH_ASSOC)[0][$field]; } else { return false; } } } public function get_vars() { $query = "SELECT * FROM {$this->from}"; if(!is_null($this->where)) { $query.=" where {$this->where}"; } if(!is_null($this->order)) { $query.=" order by id desc limit 1"; } $gets = $this->query($query,$this->get_arr); if($gets) { return $gets->fetchAll(PDO::FETCH_ASSOC)[0]; } else { return false; } } public function count() { $grouped = false; $query = "SELECT count(*) as total_count FROM {$this->from}"; if(!is_null($this->where)) { $query.=" where {$this->where}"; } if(!is_null($this->group)) { $grouped = true; $query.=" group by {$this->group}"; } if(!is_null($this->order)) { $query.=" order by {$this->order}"; } $gets = $this->query($query,$this->get_arr); if($gets) { if($grouped) { $count = 0; foreach($gets->fetchAll(PDO::FETCH_ASSOC) as $counts) { $count = $count+$counts['total_count']; } return $count; } else { return $gets->fetch(PDO::FETCH_ASSOC)['total_count']; } } else { return false; } } public function insert(array $data) { if(is_array($data)) { $query = 'INSERT INTO '.$this->from; $keys = array_keys($data); $query.=' ('.implode(',',$keys).') values ('; $query_add=''; $values = array_values($data); foreach($values as $val) { $query_add.='?,'; } $query_add = trim($query_add,','); $query.=$query_add.')'; if($this->query($query,$values)) { $this->last_id = self::$connect->lastInsertId(); return $this->last_id; } else { return false; } } return false; } public function update(array $data) { if(is_array($data)) { $query = "UPDATE {$this->from} set"; $keys = array_keys($data); $values = array_values($data); $query_add = ''; foreach($keys as $key) { $query_add.=" {$key} = ?,"; } $query_add = trim($query_add,','); $query.=$query_add; if(!is_null($this->where)) { $query.=" where {$this->where}"; } $new = array_merge($values,$this->get_arr); if($this->query($query,$new)) { return true; } else { return false; } } return false; } public function delete() { $query = "DELETE FROM {$this->from}"; if(!is_null($this->where)) { $query.=" where {$this->where}"; } if($this->query($query,$this->get_arr)) { return true; } else { return false; } } public function error() { return $this->error; } public function last_id() { return $this->last_id; } protected function reset() { $this->error = null; $this->last_id = null; $this->query = null; $this->from = null; $this->select = '*'; $this->where = null; $this->group = null; $this->order = null; $this->limit = null; $this->pagination_type = false; $this->per_page = 0; $this->get_arr = null; } } $db = new DB(); ?>
💾 Kaydet
İptal
📝 Yeniden Adlandır
İptal
Kaydet
🔐 Dosya İzinleri (chmod)
İzin Değeri:
Hızlı Seçim:
777
755
644
600
777
= Herkes okur/yazar/çalıştırır
755
= Sahip tam, diğerleri okur/çalıştırır
644
= Sahip okur/yazar, diğerleri okur
600
= Sadece sahip okur/yazar
İptal
Uygula