Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- class Controller extends PDO
- {
- public $connection = null;
- public function __construct( $driver, $params )
- {
- /**
- * Verifica se a Extenção do PDO Esta Carregada
- */
- if(!extension_loaded('PDO')){
- throw new LogicException('A Extenção do PDO Não Esta Carregada');
- }
- /**
- * Monta o Array com os dados da conexção
- */
- $DSN = Array();
- if( isset( $params['hostname'] ) && isset( $params['database'] )){
- $DSN[] = 'host='.$params['hostname'];
- $DSN[] = 'dbname='.$params['database'];
- }
- if( isset( $params['username'] )){
- $user = $params['username'];
- }
- if( isset( $params['password'] )){
- $password = $params['password'];
- }
- /**
- * Captura o Tipo de Driver Que Deseja Connectar
- */
- switch( $driver ){
- case 'mysql':
- $this->connection = parent::__construct( 'mysql:'. implode(';', $DSN), $user, $password );
- break;
- case 'pgsql':
- $this->connection = parent::__construct( 'pgsql:'. implode(';',$DSN), $user, $password );
- break;
- case 'sqlite':
- $this->connection = parent::__construct( 'sqlite:'. $params['database'] );
- break;
- /**
- * Falor Definido , Ou seja , se nenhum driver for definido
- * Dispara uma Excepção em Tempo de Execução, Informando Que não foi Definido um driver
- * Para uma conexção com o banco de dados
- */
- default:
- throw new RuntimeException('Não Foi Possivel Connectar ao Banco de Dados, Nenhum Driver Especificado');
- break;
- }
- /**
- * Seta os Atributos para um melhor desempenho
- * Como o ATTR_DEFAULT_FETCH_MODE
- * retorna um array com matrizes associativas
- * ao inves de matrizes numericas & associativas, caso queria um array com matrizes numericas
- * pode se usar na funçao o parametro PDO::FETCH_BOTH, PDO::FETCH_ARRAY, ou o tipo de fechamento que você
- * deseja .! , mais indicado e PDO Fetch Assoc , que e igual a um mysqli_fetch_assoc, mysql_fetch_assoc
- */
- parent::setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
- parent::setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
- parent::setAttribute(PDO::ATTR_TIMEOUT, 0);
- /**
- * Retorna a Conexção
- */
- return $this->connection;
- }
- }
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement