Вход Регистрация
Файл: 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_ERRMODE, PDO :: ERRMODE_EXCEPTION);
        
$this->setAttribute(PDO :: ATTR_DEFAULT_FETCH_MODE, PDO :: 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=' . DBNAME, DBUSER, DBPASS);
            
self:: $dbs->exec('SET CHARACTER SET utf8');
            
self:: $dbs->exec('SET NAMES utf8');
        } catch (
PDOException $e) {
            die(
'Connection failed: ' . $e->getMessage());
        }
    }
}

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