Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class DB{
- private static $_instance = null;
- private $_pdo,
- $query,
- $error = false,
- $result,
- $count = 0;
- private function __construct(){
- try {
- $this->_pdo = new PDO(
- 'mysql:host=' . config::get('mysql/host'),//get host name
- 'dbname=' . config::get('mysql/db'),//get database name
- config::get('mysql/username'),
- config::get('mysql/password'));
- } catch (PDOException $e){
- die($e->getMessage());
- }
- }
- public static function getInstance(){
- if(!isset(self::$_instance)){
- self::$_instance = new DB();
- //echo "Connected";
- }
- 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->_result = $this->_query->fetchAll(PDO::FETCH_OBJ);
- $this->_count = $this->_query->rowCount();
- } else {
- $this->_error = true;
- }
- }
- return $this;
- }
- public 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()){
- if(count($fields)){
- $keys = array_key($fields);
- $sql = "INSERT INTO users (".implode(', ', $keys).") VALUES (".implode(',', array_fill(0, count($keys), '?')).")";
- 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++;
- }
- die($set);
- $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;
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement