Вход Регистрация
Файл: upload-2031-rs1/system/library/db/mpdo.php
Строк: 76
<?php
namespace DB;
final class 
mPDO {
    private 
$pdo = null;
    private 
$statement = null;

    public function 
__construct($hostname, $username, $password, $database, $port = '3306') {
        try {
            
$this->pdo = new PDO("mysql:host=" . $hostname . ";port=" . $port . ";dbname=" . $database, $username, $password, array(PDO::ATTR_PERSISTENT => true));
        } catch(
PDOException $e) {
            
trigger_error('Error: Could not make a database link ( ' . $e->getMessage() . '). Error Code : ' . $e->getCode() . ' <br />');
            exit();
        }

        
$this->pdo->exec("SET NAMES 'utf8'");
        
$this->pdo->exec("SET CHARACTER SET utf8");
        
$this->pdo->exec("SET CHARACTER_SET_CONNECTION=utf8");
        
$this->pdo->exec("SET SQL_MODE = ''");

    }

    public function 
prepare($sql) {
        
$this->statement = $this->pdo->prepare($sql);
    }

    public function 
bindParam($parameter, $variable, $data_type = PDO::PARAM_STR, $length = 0) {
        if (
$length) {
            
$this->statement->bindParam($parameter, $variable, $data_type, $length);
        } else {
            
$this->statement->bindParam($parameter, $variable, $data_type);
        }
    }

    public function 
execute() {
        try {
            if (
$this->statement && $this->statement->execute()) {
                
$data = array();

                while (
$row = $this->statement->fetch(PDO::FETCH_ASSOC)) {
                    
$data[] = $row;
                }

                
$result = new stdClass();
                
$result->row = (isset($data[0])) ? $data[0] : array();
                
$result->rows = $data;
                
$result->num_rows = $this->statement->rowCount();
            }
        } catch(
PDOException $e) {
            
trigger_error('Error: ' . $e->getMessage() . ' Error Code : ' . $e->getCode());
        }
    }

    public function 
query($sql, $params = array()) {
        
$this->statement = $this->pdo->prepare($sql);
        
$result = false;

        try {
            if (
$this->statement && $this->statement->execute($params)) {
                
$data = array();

                while (
$row = $this->statement->fetch(PDO::FETCH_ASSOC)) {
                    
$data[] = $row;
                }

                
$result = new stdClass();
                
$result->row = (isset($data[0]) ? $data[0] : array());
                
$result->rows = $data;
                
$result->num_rows = $this->statement->rowCount();
            }
        } catch (
PDOException $e) {
            
trigger_error('Error: ' . $e->getMessage() . ' Error Code : ' . $e->getCode() . ' <br />' . $sql);
            exit();
        }

        if (
$result) {
            return 
$result;
        } else {
            
$result = new stdClass();
            
$result->row = array();
            
$result->rows = array();
            
$result->num_rows = 0;
            return 
$result;
        }
    }

    public function 
escape($value) {
        return 
str_replace(array("\", "", "n", "r", "x1a", "'", '"'), array("\\", "\0", "\n", "\r", "Z", "'", '"'), $value);
    }

    public function countAffected() {
        if (
$this->statement) {
            return 
$this->statement->rowCount();
        } else {
            return 0;
        }
    }

    public function getLastId() {
        return 
$this->pdo->lastInsertId();
    }

    public function __destruct() {
        
$this->pdo = null;
    }
}
Онлайн: 3
Реклама