📁 PHP Dosya Yöneticisi
/
/
home
/
demodesigncom
/
e-ticaretv4.demodesign.com.tr
/
ayar
/
Class
📝
Db.Class.php
← Geri Dön
<?php class Db extends \PDO { private $sql; private $tableName; private $where; private $join; private $orderBy; private $groupBy; private $limit; private $page; private $totalRecord; private $pageCount; private $paginationLimit; private $html; public function __construct($host, $dbname, $username, $password, $charset = 'utf8') { parent::__construct('mysql:host=' . $host . ';dbname=' . $dbname, $username, $password); $this->query('SET CHARACTER SET ' . $charset); $this->query('SET NAMES ' . $charset); } public function select($tableName) { $this->sql = 'SELECT * FROM `' . $tableName . '`'; $this->tableName = $tableName; return $this; } public function from($from) { $this->sql = str_replace('*', $from, $this->sql); return $this; } public function where($column, $value = '', $mark = '=', $logical = '&&') { $this->where[] = array( $column, $value, $mark, $logical ); return $this; } public function or_where($column, $value, $mark = '=') { $this->where($column, $value, $mark, '||'); return $this; } public function join($targetTable, $joinSql, $joinType = 'inner') { $this->join[] = ' ' . strtoupper($joinType) . ' JOIN ' . $targetTable . ' ON ' . sprintf($joinSql, $targetTable, $this->tableName); return $this; } public function orderby($columnName, $sort = 'ASC') { $this->orderBy = ' ORDER BY ' . $columnName . ' ' . strtoupper($sort); return $this; } public function groupby($columnName) { $this->groupBy = ' GROUP BY ' . $columnName; return $this; } public function limit($start, $limit) { $this->limit = ' LIMIT ' . $start . ',' . $limit; return $this; } public function run($single = false) { if ($this->join) { $this->sql .= implode(' ', $this->join); $this->join = null; } $this->get_where(); if ($this->groupBy) { $this->sql .= $this->groupBy; $this->groupBy = null; } if ($this->orderBy) { $this->sql .= $this->orderBy; $this->orderBy = null; } if ($this->limit) { $this->sql .= $this->limit; $this->limit = null; } $query = $this->query($this->sql); if ($single){ return $query->fetch(parent::FETCH_ASSOC); } else{ return $query->fetchAll(parent::FETCH_ASSOC); } } private function get_where() { if (is_array($this->where) && count($this->where) > 0) { $this->sql .= ' WHERE '; $where = array(); foreach ($this->where as $key => $arg) { if (strstr($arg[1], 'FIND_IN_SET')) { $where[] = ($key > 0 ? $arg[3] : null) . $arg[1]; } else { $where[] = ($key > 0 ? $arg[3] : null) . ' `' . $arg[0] . '` ' . strtoupper($arg[2]) . ' ' . (strstr($arg[2], 'IN') ? '(' : '"') . $arg[1] . (strstr($arg[2], 'IN') ? ')' : '"'); } } $this->sql .= implode(' ', $where); $this->where = null; } } public function insert($tableName) { $this->sql = 'INSERT INTO ' . $tableName; return $this; } public function set($columns) { $val = array(); $col = array(); foreach ($columns as $column => $value) { $val[] = $value; $col[] = $column . ' = ? '; } $this->sql .= ' SET ' . implode(', ', $col); $this->get_where(); $query = $this->prepare($this->sql); $result = $query->execute($val); return $result; } public function lastId() { return $this->lastInsertId(); } public function update($columnName) { $this->sql = 'UPDATE ' . $columnName; return $this; } public function delete($columnName) { $this->sql = 'DELETE FROM ' . $columnName; return $this; } public function done() { $this->get_where(); $query = $this->exec($this->sql); return $query; } public function total() { if ($this->join) { $this->sql .= implode(' ', $this->join); $this->join = null; } $this->get_where(); if ($this->orderBy) { $this->sql .= $this->orderBy; $this->orderBy = null; } if ($this->groupBy) { $this->sql .= $this->groupBy; $this->groupBy = null; } if ($this->limit) { $this->sql .= $this->limit; $this->limit = null; } $query = $this->query($this->sql)->fetch(parent::FETCH_ASSOC); return $query['total']; } public function pagination($totalRecord, $paginationLimit, $pageParamName) { $this->paginationLimit = $paginationLimit; $this->page = isset($_GET[$pageParamName]) && is_numeric($_GET[$pageParamName]) ? $_GET[$pageParamName] : 1; $this->totalRecord = $totalRecord; $this->pageCount = ceil($this->totalRecord / $this->paginationLimit); $start = ($this->page * $this->paginationLimit) - $this->paginationLimit; return array( 'start' => $start, 'limit' => $this->paginationLimit ); } public function showPagination($url, $class = 'active') { if ($this->totalRecord > $this->paginationLimit) { for ($i = $this->page - 5; $i < $this->page + 5 + 1; $i ++) { if ($i > 0 && $i <= $this->pageCount) { $this->html .= '<li class="'; $this->html .= ($i == $this->page ? $class : null); $this->html .= '"><a href="' . str_replace('[page]', $i, $url) . '">' . $i . '</a>'; } } return $this->html; } } public function nextPage() { return ($this->page + 1 < $this->pageCount ? $this->page + 1 : $this->pageCount); } public function prevPage() { return ($this->page - 1 > 0 ? $this->page - 1 : 1); } public function getSqlString() { return $this->sql; } }
💾 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