Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Nerdmonkey

Classe update

Recommended Posts

Boa noite!

 

Esta classe está boa ? Dá pra simplificar ou melhorar ? Onde e porque ?

 

https://github.com/estudioprogramacaocriativa/POO/issues

 

Como eu faria, por exemplo, com o bindValue() ? Não conseguir visualizar uma solução interessante ainda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na realidade tem que mudar é tudo, você misturou OOP com Procedural, fora que poderia postar os códigos aqui mesmo no fórum! :hehehe:

Em sua classe de conexão, se você quiser usar mais de um banco em sua aplicação, como é que vai fazer?

 

Pesquise por injeção de dependência e evite este pattern Singleton

 

Dê uma lida neste post abaixo

 

http://forum.imasters.com.br/topic/463107-pdo-registry-design-pattern-phpoo/

 

Sobre o bind de uma lida aqui

 

http://codereview.stackexchange.com/questions/11147/php-prepared-statements

Compartilhar este post


Link para o post
Compartilhar em outros sites

private function __construct()
    {                   
        $servidor = $_SERVER[ 'SERVER_NAME' ];    
-> seria melhor recebido como argumento:

 

private function __construct($servidor)
    {
-> não faz sentido um objeto apenas para update.

-> não dê 'echo' de dentro de um método

-> retorne estados(true, false)

-> não misture html com php

-> para saber se funcionou, não é o rowCount() que te diz isso

-> cuidado com 'typos' menssage (palavra nem inglês e nem português)

-> atributos que não usados, pois você tá recebendo via parâmetro:

private $table;
private $campos;
private $id;
-> escreva um teste unitário, ai você notará os problemas que relatei acima.

->

"UPDATE $table SET $campos WHERE id = $id"
uso custoso.

Pesquise por alguns patterns como Active Record ou DAO.

 

-> Falhe elegantemente, die() mata o programa e trava a tela.

-> Faça as configs serem externas a classe. Você não deve editar um objeto para mudar esse tipo de valor

        if( $servidor == 'localhost' )
            {
                $db_host    = 'localhost';
                $db_nome    = 'sis_pizzaria';
                $db_usuario = 'root';
                $db_senha   = '';
                $db_driver  = 'mysql';
            }
coloque por exemplo em um arquivo .ini

-> eu não tenho nada contra o Singleton, não acho que seja o pior problema do código.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpa desmarcar como resolvido Bruno. Preciso resolver um outro problema.

Pesquisei pela class Dao e Registry.

Bom, isso é meio complicado, acho que por ainda não ter entendido 100% como funciona, por isso preciso de uma ajuda aqui.

require_once 'Registry.php';
 
// Instanciar uma conexão com PDO
$pdo = new PDO( 'mysql:host=localhost;port=3306;dbname=sistema_devmedia', 'root', '' );
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
 
// Armazenar essa instância no Registry
$registry = Registry::getInstance();
$registry->set( 'Connection', $pdo );
 
class Dao
{
function store( $table, $data )
{
$fields = null;
$values = null;
$parameters = null;
 
if( $data[ 'id' ] )
{
foreach ( $data as $auxFields => $auxValues )
{
if( $auxFields != 'id' )
{
$parameters .= $parameters ? ', '.$auxFields.' = \''.$auxValues.'\'' : $auxFields.'=\''.$auxValues.'\'';
}
}
 
$this->update( $table, $parameters, $data[ 'id' ] );
}
else
{
foreach ( $data as $auxFields => $auxValues )
{
if( $auxFields != 'id' )
{
$fields .= $fields ? ', '.$auxFields : $auxFields;
$values .= $values ? ', \''.$auxValues.'\'' : '\''.$auxValues.'\'';
}
}
$this->insert( $table, $fields, $values );
}
}
 
function insert( $table, $fields, $values )
{
$sql = $pdo->prepare( "INSERT INTO $table ($fields) VALUES ($values)" );
$exe = $sql->execute();
$row = $sql->rowCount();
 
if( $row > 0 )
{
unset( $conn );
header( "location: ../view/index.php?p=status.php&msg=Registro Inclu�do com Sucesso&voltar=autores" );
}
else
{
unset( $conn );
echo 'Erro na Gravação';
}
}
}

É exatamente isso que sempre quis e precisei aprender, porém não está funcionando.
O método store, insert, delete e update está de boa. Deu pra entender. Não estou conseguindo entender direito o registry. Mais especificamente essa parte
$registry->set( 'Connection', $pdo );
Entendi que ele armazena uma instância dessa conexão e sempre que ela já estiver aberta ou em cache, será reutilizada, mas essa atribuição ai não ficou clara.
Ah! Pegue o registry do Barcelos aqui do fórum também
<?php
class Registry {
protected static $instance;
private $data = array();
 
final protected function __construct() {
}
 
public static function getInstance() {
if(static::$instance === null) {
static::$instance = new static();
}
return static::$instance;
}
 
public function set($obj) {
if(!is_object($obj)) {
throw new Exception('Registry armazena somente objetos, você forneceu ' . gettype($obj));
}
 
$class = get_class($obj);
if(isset($this->data[$class])) {
throw new Exception('Já existe uma instância de ' . $class . ' no registro');
}
 
$this->data[$class] = $obj;
}
 
public function get($className) {
if(isset($this->data[$class])) {
return $this->data[$class];
} else {
return null; //Ou lance uma exceção se preferir...
}
}
}

Error

 

 

Fatal error: Uncaught exception 'Exception' with message 'Registry armazena somente objetos, você forneceu string' in D:\xampp\htdocs\exe_devmedia\Classes\Registry.php:18 Stack trace: #0 D:\xampp\htdocs\exe_devmedia\Classes\Dao.php(13): Registry->set('Connection', Object(PDO)) #1 {main} thrown in D:\xampp\htdocs\exe_devmedia\Classes\Registry.php on line 18

Compartilhar este post


Link para o post
Compartilhar em outros sites

porém não está funcionando.

o que mais exatamente não está funcionando?

 

 

Não estou conseguindo entender direito o registry. Mais especificamente essa parte

$registry->set( 'Connection', $pdo );

 

hum.. esse set é somente isso aqui:

$this->data[$class] = $obj;
você "guarda" numa propriedade da classe Registry esse objeto.

E depois na hora de usar, recupera ele:

 

$pdo = $registry->get('Connection');
que foi a linha que você não fez.

 

 

ps: ainda há coisas para serem melhoradas na tua classe Dao, mas vou deixar para falar em um próximo post, assim que vc entender o Registry.

Pense nele como uma gaveta de singletons.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é, não sei o que funciona ou não. Porque recebo um erro dizendo que estou passando uma string e devo passar um objeto. Como ficou acrescendo a linha que você me passou

// Armazenar essa instância no Registry
$registry = Registry::getInstance();
$registry->set( 'Connection', $pdo );
$pdo = $registry->get( 'Connection' );

Trecho do erro

 

 

Exception' with message 'Registry armazena somente objetos, você forneceu string' in

 

Acho que agora entendi o que o Registry fez, ele armazena a instância em 'Connection' através do $registry->set() e recupeca com o $registry->get. Isso me permitiria ter por exemplo, 3 conexões com bancos de dados diferentes ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

E o erro com o teu Registry, é que vc não olhou a forma de uso dele:

public function set($obj) {
viu que o set() recebe um único argumento ?

Então:

$registry = Registry::getInstance();
$registry->set( $pdo );
e então, "magicamente":

$class = get_class($obj);
o set do Registry descobre o nome da classe do objeto e guarda nele, no teu caso, o get teria que ser:

 

$pdo = $registry->get( 'PDO' );
pois é esse o nome da classe que vc guardou em $pdo.

$pdo = new PDO( 'mysql:host=localhost;port=3306;dbname=sistema_devmedia', 'root', '' );
Com esse modelo de Registry vc fica impossibilitado de guardar múltiplas conexões com o banco, pq ele sobrescreveria pelo nome da classe. Mas se fosse um "Registry padrão", vc poderia fazer:

$registry->set( 'Loja', $pdo );
$registry->set( 'Integracao', $pdo2 );
$registry->set( 'ClienteExterno', $pdo3 );
E então ter na gaveta do registry diversas conexões para serem recuperadas depois pelo método get()

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza Bruno. Era esse mesmo o problema. Nem percebi que a função recebia apenas um parâmetro. Agora funcionou de boa.

 

É errado fazer dessa forma ?

 

 

class Conexao
{
public function pdo()
{
// Instanciar uma conexão com PDO
$pdo = new PDO( 'mysql:host=localhost;port=3306;dbname=sistema_devmedia', 'root', '' );
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
}
 
public function registry()
{
// Armazenar essa instância no Registry
$registry = Registry::getInstance();
$registry->set( $this->pdo );
$pdo = $registry->get( 'PDO' );
 
return $pdo;
}
}
 

class Dao extends Conexao
{
 
...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não é necessário você fazer isso, até pq se fizer, vai começar a receber Exceptions por tentar redeclarar um cara que já está no Registry:

throw new Exception(
E outra, se o Dao extend Conexão, vc está usando herança de uma forma errada.

E também jogou fora o propósito do Registry. Tente utilizar mais Injeção de Dependência.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ok. Agora como eu coloco a variável $pdo no escopo da classe ? Porque até então ela não é reconhecida.

 

Dá uma olhada

Notice: Undefined variable: class in D:\xampp\htdocs\exe_devmedia\Classes\Registry.php on line 30

Notice: Undefined index: id in D:\xampp\htdocs\exe_devmedia\Classes\Dao.php on line 24

Notice: Undefined variable: pdo in D:\xampp\htdocs\exe_devmedia\Classes\Dao.php on line 52

Fatal error: Call to a member function prepare() on a non-object in D:\xampp\htdocs\exe_devmedia\Classes\Dao.php on line 52

O código todo

<?php
error_reporting( E_ALL );
ini_set( 'display_errors', 1 );
 
require_once 'Registry.php';
 
// Instanciar uma conexão com PDO
$pdo = new PDO( 'mysql:host=localhost;port=3306;dbname=sistema_devmedia', 'root', '' );
$pdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
 
// Armazenar essa instância no Registry
$registry = Registry::getInstance();
$registry->set( $pdo );
$pdo = $registry->get( 'PDO' );
 
class Dao
{
function store( $table, $data )
{
$fields = null;
$values = null;
$parameters = null;
 
if( $data[ 'id' ] )
{
foreach ( $data as $auxFields => $auxValues )
{
if( $auxFields != 'id' )
{
$parameters .= $parameters ? ', '.$auxFields.' = \''.$auxValues.'\'' : $auxFields.'=\''.$auxValues.'\'';
}
}
 
$this->update( $table, $parameters, $data[ 'id' ] );
}
else
{
foreach ( $data as $auxFields => $auxValues )
{
if( $auxFields != 'id' )
{
$fields .= $fields ? ', '.$auxFields : $auxFields;
$values .= $values ? ', \''.$auxValues.'\'' : '\''.$auxValues.'\'';
}
}
$this->insert( $table, $fields, $values );
}
}
 
function insert( $table, $fields, $values )
{
$sql = $pdo->prepare( "INSERT INTO $table ($fields) VALUES ($values)" );
$exe = $sql->execute();
$row = $sql->rowCount();
 
if( $row > 0 )
{
unset( $conn );
header( "location: ../view/index.php?p=status.php&msg=Registro Inclu�do com Sucesso&voltar=autores" );
}
else
{
unset( $conn );
echo 'Erro na Gravação';
}
}
}
 
$dao = new Dao();
$dao->store( 'clientes', array( 'Samuel dos Santos', '027997396157', 'contato@programacaocriativa.com.br', 'Rua rio são Mateus, 95 - Hélio Ferraz - Serra / ES' ) );

Outra coisa que tenho visto muito, porque desse construct vazio ?

final protected function __construct() {}

Tá osso. Não consigo acessar a variável de conexão nem ferrando

<?php
error_reporting( E_ALL );
ini_set( 'display_errors', 1 );
 
require_once 'Registry.php';
require_once 'PDOConnectionFactory.class.php';
 
class Dao extends PDOConnectionFactory 
{
// irá receber uma conexão
public $conex = null;
 
// constructor
public function AgendaDAO(){
$this->conex = PDOConnectionFactory::getConnection();
}
 
function store( $table, $data )
{
$fields = null;
$values = null;
$parameters = null;
 
if( $data[ 'id' ] )
{
foreach ( $data as $auxFields => $auxValues )
{
if( $auxFields != 'id' )
{
$parameters .= $parameters ? ', '.$auxFields.' = \''.$auxValues.'\'' : $auxFields.'=\''.$auxValues.'\'';
}
}
 
$this->update( $table, $parameters, $data[ 'id' ] );
}
else
{
foreach ( $data as $auxFields => $auxValues )
{
if( $auxFields != 'id' )
{
$fields .= $fields ? ', '.$auxFields : $auxFields;
$values .= $values ? ', \''.$auxValues.'\'' : '\''.$auxValues.'\'';
}
}
$this->insert( $table, $fields, $values );
}
}
 
function insert( $table, $fields, $values )
{
$sql = $this->conex->prepare( "INSERT INTO $table ($fields) VALUES ($values)" );
$exe = $sql->execute();
$row = $sql->rowCount();
 
if( $row > 0 )
{
unset( $conn );
header( "location: ../view/index.php?p=status.php&msg=Registro Inclu�do com Sucesso&voltar=autores" );
}
else
{
unset( $conn );
echo 'Erro na Gravação';
}
}
}
 
$dao = new Dao();
$dao->store( 'clientes', array( 'Samuel dos Santos', '027997396157', 'contato@programacaocriativa.com.br', 'Rua rio são Mateus, 95 - Hélio Ferraz - Serra / ES' ) );

PDOConnectionFactory.class.php

<?php
/* 
 * 
 */
class PDOConnectionFactory 
{
// recebe a conexão
public $con = null;
// qual o banco de dados?
public $dbType = "mysql";
 
// parâmetros de conexão
// quando não for necessário deixe em branco apenas com as aspas duplas ""
public $host = "localhost";
public $user = "root";
public $senha = "";
public $db = "sistema_devmedia";
 
// seta a persistência da conexão
public $persistent = false;
 
// new PDOConnectionFactory( true ) <--- conexão persistente
// new PDOConnectionFactory() <--- conexao não persistente
public function PDOConnectionFactory( $persistent = false ) 
{
// verifico a persistência da conexao
if( $persistent != false) { $this->persistent = true; }
}
 
public function getConnection() {
try 
{
// realiza a conexão
$this->con = new PDO($this->dbType.":host=".$this->host.";dbname=".$this->db, $this->user, $this->senha,
array( PDO::ATTR_PERSISTENT => $this->persistent ) );
$this->con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
// realizado com sucesso, retorna conectado
return $this->con;
// caso ocorra um erro, retorna o erro;
}
catch ( PDOException $ex  ){ echo "Erro: ".$ex->getMessage(); }
 
}
 
// desconecta
public function Close() 
{
if( $this->con != null )
$this->con = null;
}
}

Error

 

 

Fatal error: Call to a member function prepare() on a non-object in D:\xampp\htdocs\exe_devmedia\Classes\Dao.php on line 52

Amém! Funcionou! O construtor estava errado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Okay.. mais alguma dúvida ?

 

Para acessar o $pdo antes, eu tinha sugerido Injeção de Dependência.

O construtor vazio e ainda mais com o final é para evitar que a cadeia na herança desse objeto tente declarar um construtor, indicando que a forma de uso não deve ser via instância, mas sim provavelmente estática.

 

Sobre os outros erros que ainda permanecem. Você deve retornar coisas, e não dar echo e muito menos fazer header() nos métodos do teu Dao.

E a tua função store() não avisa nada, não diz se conseguiu ou não fazer o trabalho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza por enquanto é isso. São muitas coisas pra aprender e estudar, acho que quando eu entender como funcionam os objetos e a forma deles se comunicarem, as coisas ficarão mais claras. Cara, sem palavras pra agradecer a força que me deu hoje à tarde quase toda :)

 

Só não dou +1 porque minha cota excedeu kkkkk

Vou continuar estudando e depois volto com mais dúvidas ou quem sabe algum material mais útil e funcional.

Por enquanto obrigado pela ajuda.


Ficou assim William

<?php
error_reporting( 0 );
ini_set( 'display_errors', 0 );
 
require_once 'Classes/Registry.php';
require_once 'Classes/PDOConnectionFactory.class.php';
require_once 'Classes/Dao.php';
 
if( ( isset( $_POST[ 'action' ] ) ) && ( $_POST[ 'action' ] == 'insert_cliente' ) ) 
{
$nome_cliente = stripslashes( trim( $_POST[ 'nome' ] ) );
$fone_cliente = stripslashes( trim( $_POST[ 'telefone' ] ) );
$mail_cliente = stripslashes( trim( $_POST[ 'email' ] ) );
$addr_cliente = stripslashes( trim( $_POST[ 'endereco' ] ) );
 
$dao = new Dao();
$dao->store( 'clientes', array( 'nome_cliente' => $nome_cliente, 'fone_cliente' => $fone_cliente, 'email_cliente' => $mail_cliente, 'endereco_cliente' => $addr_cliente ) );
}
?>
 
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
 
<link rel="stylesheet" media="screen" href="css/style.css">
<link rel="stylesheet" media="screen" href="css/normalize.css">
</head>
<body>
<section class="container">
<article class="insert">
<form method="post">
<input type="hidden" name="action" value="insert_cliente">
<label>
<strong>Nome do cliente</strong>
<input type="text" name="nome" value="<?php echo $_POST[ 'nome' ]; ?>" required title="Informe o nome do cliente">
</label>
<label>
<strong>Telefone do cliente(xx xxxxx-xxxx)</strong>
<input type="tel" name="telefone" value="<?php echo $_POST[ 'telefone' ]; ?>" maxlength="12" patern={} required title="Informe o telefone do cliente">
</label>
<label>
<strong>E-mail do cliente</strong>
<input type="email" name="email" value="<?php echo $_POST[ 'email' ]; ?>" required title="Informe o e-mail do cliente">
</label>
<label>
<strong>Endereço do cliente</strong>
<input type="text" name="endereco" value="<?php echo $_POST[ 'endereco' ]; ?>" required title="Informe o endereço do cliente">
</label>
<button type="submit">Salvar</button>
</form>
</article>
</section>
</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites
Olha eu de novo, não resisti :D


Consegui implementar um novo método, mas agora fiquei intrigado com uma coisa. Já que não é um boa prática retornar echo, ou html dentro dos métodos, como faço para exibir uma mensagem de erro quando algo der errado ?


Novo método


function check_reg( $table, $field, $value )
{
$sql = $this->conex->prepare( "SELECT * FROM $table WHERE $field = '$value'" );
$exe = $sql->execute();
$row = $sql->rowCount();

if( $row > 0 ) return true;
else return false;
}


Tentativa frustrada de mostrar ao cliente que o registro já existe



function check_reg( $table, $field, $value )
{
$sql = $this->conex->prepare( "SELECT * FROM $table WHERE $field = '$value'" );
$exe = $sql->execute();
$row = $sql->rowCount();

if( $row > 0 ) return true;
else return false;
}


O else do método store que significa um insert



...
else
{
if( $this->check_reg( $table, $field, $value ) == false )
{
foreach ( $data as $auxFields => $auxValues )
{
if( $auxFields != 'id' )
{
$fields .= $fields ? ', '.$auxFields : $auxFields;
$values .= $values ? ', \''.$auxValues.'\'' : '\''.$auxValues.'\'';
}
}
$this->insert( $table, $fields, $values );
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, o erro não será no model. Mas sim no controller.

O model pode disparar uma Exception que o Controller vai capturar para mostrar o erro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz um exemplo aqui rapidinho, só para você entender a forma de como se trabalha com Exceções

try {
		
} catch (Exception $e) {
		
}
<?php

class Model
{
	//Estática somente para facilitar o teste ;)
	public static function test($v)
	{
		//Nove e diferente de Dez, então lança o erro dentro do bloco catch 
		if ( $v !== 10){
			throw new Exception("Error Processing Request", 1);
		}
		
	}
}

class Controller
{
	
	public $message;
	
	function __construct()
	{
		try {
			
			Model::test(9);
			
		} catch (Exception $e) {
			
			$this->message = $e->getMessage();
			
		}
	}
}

$str = new Controller();
echo $str->message;

Não deixe de ler o manual, tem vários tipos de argumentos para exceções.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi Willians. É essa a verificação padrão geral ? Por exemplo

try
    {
        $sql = $this->conex->prepare( "SELECT * FROM $table WHERE email = $user AND senha = " . sha1( $senha ) . "" );
       $exe = $sql->execute();
       $row = $sql->rowCount();
    }
catch (Exception $e) {
 
    // Só posso retornar os valores defaults ?
}

Essa comparação é correta ?

Arquivo login.php

<?php
require_once './controller/Registry.php';
require_once './controller/PDOConnectionFactory.class.php';
require_once './controller/Dao.php';
require_once './controller/DaoLogin.php';
 
if( ( isset( $_POST[ 'action' ] ) ) && ( $_POST[ 'action' ] == 'mostre_crendenciais' ) ) 
{
$email = stripslashes( trim( $_POST[ 'email' ] ) );
$senha = stripslashes( trim( $_POST[ 'senha' ] ) );
$dao   = new DaoLogin();
 
if( $dao->Loggin( 'usuarios', $email, $senha ) == true )
{
 
}
}
?>
 
<div class="content">
<div class="header-pages">
<div class="titles left">
<h1>Login</h1>
<h2>Forneças suas credenciais abaixo para acessar a área administrativa</h2>
</div>
</div>
<form id="frm-login" class="frms" method="post">
<input type="hidden" name="action" value="mostre_crendenciais" />
<label>
<strong>E-mail</strong>
<input type="text" name="email" id="email" required title="Informe seu e-mail cadastrado">
</label>
<label>
<strong>Senha</strong>
<input type="password" name="senha" id="senha" required title="Informe sua senha cadastrada">
</label>
<button type="submit" class="submit">Acessar</button>
<a class="a-btn" href="reset-password"><span>Troca minha senha</span></a>
<div class="clear"></div>
</form>
</div>

As mensagens que quero retornar são: "Dados salvos com sucesso" ou "Esse registro já existe". Ai fica a dúvida se é o controller ou o model quem gera essas mensagens, caindo na minha dúvida acima, se é válido verificar o retorno do método para exibir a mensagem.


Aproveitando o gancho, como eu faço para iterar o resultado desse método em um while, por exemplo ?

 

 

function getAll( $table )
{
  $sql = $this->conex->prepare( "SELECT * FROM $table" );
$exe = $sql->execute();
$row = $sql->rowCount();
 
if( $row > 0 )
{
 
while( $lin = $sql->fetch( PDO::FETCH_OBJ ) )
{
$arrayDados[] = $lin;
}
 
return $arrayDados;
unset( $this->conex );
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, procurei pelo mais detalhado artigo em português para você, com o padrão que você esta usando, já com Registry

 

http://www.diogomatheus.com.br/blog/php/trabalhando-com-pdo-no-php/

 

Pesquise também por autoloading para carregar suas classes automaticamente, assim evita estes requireds pelo seu código :thumbsup:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como eu faço pra colocar meu objeto PDO na caixa do Registry diretamente desse método ?

 

 

public function getConnection() 
{
try 
{
$this->con = new PDO( $this->dbType.":host=".$this->host.";dbname=".$this->db, $this->user, $this->senha, array( PDO::ATTR_PERSISTENT => $this->persistent ) );
$this->con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$registry  = Registry::getInstance();
$this->con = $registry->get( $this->con );
 
return $this->con;
}
catch ( PDOException $ex  ){ echo "Erro: ".$ex->getMessage(); }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.