WorldByte.Net - наш хостинг-партнёр
Авторизация Регистрация
Полезные PHP коды | Говнокод | Класс для работы с BD (placeholders)
Название: Класс для работы с BD (placeholders)
Описание:
Класс для работы с BD (placeholders)
Код:
<?php
class SQL

{

    private 
$sql false;

    private 
$result false;

/*    

    private static $instance = null;

 

    private function __construct(){}

    private function __clone(){}

    private function __wakeup(){}

 

    public static function getInstance() {

        if (is_null(self::$instance)) {

            self::$instance = new self();

        }

        return self::$instance;

    }

*/    

    
public function isFetch() {

        return 
preg_match('/select/i'$this->sql) ? true false;

    }

 

    public function 
prepare($sql) {

        
$this->sql trim($sql);

        return 
$this;

    }

 

    public function 
fetch() {

        return 
mysql_fetch_assoc($this->result);

    }

 

    public function 
execute($args = array()) {

        if (
sizeof($args)) {

            
$args $this->esc($args);

            
$parts preg_split('#(?)#u'$this->sqlnullPREG_SPLIT_DELIM_CAPTURE);

            
$cnt sizeof($parts);

            
$cntargs sizeof($args);

            
$cntparts substr_count($this->sql'?');

 

            if (
$cntargs != $cntparts) {

                throw new 
InvalidArgumentException('Wrong number of arguments. Parts = ' $cntparts ', Args = ' $cntargs);

            }

 

            
$sql '';

            for(
$i 0$i $cnt$i++) {

                
$sql .= (($i 2) == $parts[$i] : str_replace('?'$args[($i/2)], $parts[$i]));

            }

            
$sql .= ';';

 

            
$res mysql_query($sql);

        } else {

            
$res mysql_query($this->sql);

        }

 

        
$this->result $this->isFetch() ? $res mysql_affected_rows();

        return 
$this;

    }

 

    public function 
insert_id() {

        
$id mysql_fetch_row(mysql_query("SELECT LAST_INSERT_ID()"));

        return 
$id[0];

    }

 

    public function 
esc($data) {

        if (!
is_array($data)) {

            
$data is_int($data) ? $data '"' mysql_real_escape_string($data) . '"';

        } else {

            
$data array_map(array($this'esc'), $data);

        }

 

        return 
$data;

    }

}
?>
Подпись: Как работать? 

Где нибудь в начале скрипта инициализируем класс
<?php
#$db = SQL::getInstance();

$db = new SQL();
?>

Добавил: k011E [Соз.](18 Апреля 2017 в 14:50)
Просмотров: 116
Уникальных просмотров: 1
Рейтинг: 0/0 [История изменения рейтинга]
Комментарии [0]
Ген. 0.0059
© Php-Zona.Ru 2014-2021 г.