Вход Регистрация
Файл: core/class/pdo.php
Строк: 74
<?php

/**
 * @package     Prime Social
 * @link        http://primesocial.ru
 * @copyright   Copyright (C) 2016 Prime Social
 * @author      BoB | http://primesocial.ru/about
 */


if (!class_exists('PDO')) {
    die(
'Fatal Error: Ishlash uchun PDO kerak.');
}

/**
 * Class PDO_
 */
class PDO_ extends PDO
{
    
/**
     * PDO_ constructor.
     * @param $dsn
     * @param $username
     * @param $password
     */
    
public function __construct($dsn$username$password)
    {
        
parent:: __construct($dsn$username$password);
        
$this->setAttribute(PDO :: ATTR_ERRMODEPDO :: ERRMODE_EXCEPTION);
        
$this->setAttribute(PDO :: ATTR_DEFAULT_FETCH_MODEPDO :: FETCH_ASSOC);
    }

    
/**
     * @param string $sql
     * @return PDOStatement
     */
    
public function prepare($sql)
    {
        
$stmt parent:: prepare($sql, array(
            
PDO :: ATTR_STATEMENT_CLASS => array('PDOStatement_')
        ));
        return 
$stmt;
    }

    
/**
     * @param string $sql
     * @param array $params
     * @return PDOStatement
     */
    
public function query($sql$params = array())
    {
        
$stmt $this->prepare($sql);
        
$stmt->execute($params);
        return 
$stmt;
    }

    
/**
     * @param $sql
     * @param array $params
     * @return mixed
     */
    
public function querySingle($sql$params = array())
    {
        
$stmt $this->query($sql$params);
        
$stmt->execute($params);
        return 
$stmt->fetchColumn(0);
    }

    
/**
     * @param $sql
     * @param array $params
     * @return mixed
     */
    
public function queryFetch($sql$params = array())
    {
        
$stmt $this->query($sql$params);
        
$stmt->execute($params);
        return 
$stmt->fetch();
    }
}

/**
 * Class PDOStatement_
 */
class PDOStatement_ extends PDOStatement
{
    
/**
     * @param array $params
     * @return $this|bool
     */
    
public function execute($params = array())
    {
        if (
func_num_args() == 1) {
            
$params func_get_arg(0);
        } else {
            
$params func_get_args();
        }
        if (!
is_array($params)) {
            
$params = array($params);
        }
        
parent:: execute($params);
        return 
$this;
    }

    
/**
     * @return mixed
     */
    
public function fetchSingle()
    {
        return 
$this->fetchColumn(0);
    }

    
/**
     * @return array
     */
    
public function fetchAssoc()
    {
        
$this->setFetchMode(PDO::FETCH_NUM);
        
$data = array();
        while (
$row $this->fetch()) {
            
$data[$row[0]] = $row[1];
        }
        return 
$data;
    }
}

/**
 * Class DB
 */
class DB
{
    
/** @var PDO_ */
    
static $dbs;

    
/**
     * DB constructor.
     */
    
public function __construct()
    {
        try {
            
self:: $dbs = new PDO_('mysql:host=' DBHOST ';port=' DBPORT ';dbname=' DBNAMEDBUSERDBPASS);
            
self:: $dbs->exec('SET CHARACTER SET utf8');
            
self:: $dbs->exec('SET NAMES utf8');
        } catch (
PDOException $e) {
            die(
'Connection failed: ' $e->getMessage());
        }
    }
}

$db = new DB();
Онлайн: 1
Реклама