Вход Регистрация
Файл: 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;
    }
}
Онлайн: 1
Реклама