O uso de uma interface consistente para acesso ao banco de dados utilizando o PDO torna nossa aplicação PHP mais flexível no uso de banco de dados. Podemos conectar não só ao MySQL mas também a muitos outros bancos como PostgreSQL, SQLServer, Oracle e assim por diante, bastando utilizar o driver adequado.
Com o PDO você abstrai o banco de dados que está sendo utilizado pela aplicação, ou seja, a aplicação não sabe qual banco de dados está usando, podendo ser MySQL, PostgreSQL, Oracle e etc, não importa. Caso você necessite mudar de banco e dados, apenas o Driver ligado ao PDO será alterado, e o seu código de consulta, inserção, atualização e deleção de dados não necessitará de alteração.
Inicialmente é necessário verificar se o driver do PDO para MySQL está instalado no PHP em seu servidor. Você pode utilizar a função “phpinfo();” em seu arquivo php para verificar o estado do PHP no servidor. A imagem abaixo mostra que o PDO está instalado:
Caso seja necessário instalar o driver PDO para MySQL no PHP em seu servidor, acesse os seguintes links:
www.php.net/manual/pt_BR/ref.pdo-mysql.php
www.php.net/manual/pt_BR/pdo.installation.php
Com todos os ajustes do servidor PHP realizados com sucesso, vamos ao código. Abaixo está o código da Classe BD no arquivo BD.php:
<?php
###########################
#Bruno Pelatieri Goulart - www.brunogoulart.com.br - 01/01/2018
#Classe de conexão PDO ao banco de dados
#PDO MySQL php versão 5.6 para +
##########################
class BD {
protected static $db;
private function __construct(){
$db_host = "Host da Conexão à Base de Dados";
$db_nome = "Nome da Base de Dados";
$db_usuario = "Usuário da Conexão à Base de Dados";
$db_senha = "Senha do Usuário para Conexão à Base de Dados";
/*Abaixo ajustamos o drive para a conexão que pode ser mysql, sqlsrv etc... No nosso caso utilizaremos o mysql*/
$db_driver = "mysql";
try{
# Atribui o objeto PDO à variável $db.
self::$db = new PDO("$db_driver:host=$db_host; dbname=$db_nome", $db_usuario, $db_senha);
# Garante que o PDO lance exceções durante erros.
self::$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
# Garante que os dados sejam armazenados com codificação UFT-8.
self::$db->exec('SET NAMES utf8');
} catch (PDOException $e){
#Caso acontece o ERRO, exibimos a mensagem para debugar.
die("Connection Error: " . $e->getMessage());
}
}
#Método estático - acessível sem instanciação.
public static function conexao(){
#Garante uma única instância. Se não existe uma conexão, criamos uma nova.
if(!self::$db){ new BD(); }
#Retorna a conexão.
return self::$db;
}
}
?>
AGUARDEM NOVAS POSTAGEM SOBRE O USO DA CLASSE BD.
Link permanente
Super legal!
Estava lendo os artigos
Link permanente
Superbe blog, qui transpire la passion à l’état pur… Johna Marsh Bertrando
Link permanente
Buen artículo! Gracias.. Faye Cristiano Peers