Como se conectar ao banco de dados com PHP e PDO

Fala Pessoal

Hoje vamos aprender um pouco sobre PDO.

O PDO é a extensão de acesso a banco de dados mais utilizado na linguagem de programação PHP.

A utilização do PDO fornece uma camada de abstração em relação a conexão com o banco de dados visto que o PDO efetua a conexão com diversos bancos de dados da mesma maneira, modificando apenas a sua string de conexão.

Devo usar MySQLi ou PDO?

Se você precisar de uma resposta curta, seria "O que você quiser".

Tanto o MySQLi quanto o PDO têm suas vantagens:

O PDO funcionará em 12 sistemas de banco de dados diferentes, enquanto o MySQLi funcionará apenas com bancos de dados MySQL.

Portanto, se você precisar mudar seu projeto para usar outro banco de dados, o PDO facilita o processo. Você só precisa alterar a string de conexão e algumas consultas. Com o MySQLi, você precisará reescrever todo o código - consultas incluídas.

Muitas pessoas ficam um pouco intimidadas em usar o PDO de início, não por se tratar de uma API difícil de usar, muito pelo contrário, pois é muito fácil de usar, mas sim porque a API mysql é muito fácil de usar e as pessoas acabam se acostumando com ela.

Primeiro vamos ver como se conectar usando o PDO. Nós vamos criar uma nova instância de classe e especificar o driver que vamos usar, no caso o mysql, o nome do banco de dados, nome de usuário e senha.

<?php $conn = new PDO('mysql:host=localhost;dbname= meuBancoDeDados', $username, $password); ?>

Como vimos, também é muito simples se conectar usando o PDO, mas como em toda conexão, é preciso tratar os erros, para se caso aconteça algum erro na conexão, mostrar isso ao usuário.

Vamos criar uma Função Conexao e vamos usar o try..catch, usado nas linguagens orientada a objetos para tratar Erros.

<?php
function Conexao(){
    try {
        $pdo = new PDO('mysql:host=localhost;dbname=lojavirtual','root','');
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        return $pdo;
    } catch (PDOException $ex){
        echo 'Erro ao Conectar com o Banco de Dados: ';
        //echo $ex->getMessage();
    }
};

e Pronto!!! é interessante criar um arquivo de conexão separado como Conexao.php.

Para fins de Teste, vamos criar um banco como nome lojavirtual e uma tabela com o nome de produtos.

Vamos ultilizar o Mysql que vem no Xampp, Abra o Terminal Shell do Xampp e cole o código abaixo:

mysql -u root

Logo após insira o comando abaixo, para criar o banco lojavirtual

CREATE DATABASE lojavirtual;
USE Mercado;

Agora com o comando abaixo, vamos criar a Tabela Produtos:

CREATE TABLE produtos (id INT AUTO_INCREMENT,nome VARCHAR(20),valor VARCHAR(11),quantidade INT,PRIMARY KEY (id));

e Pronto!!! Banco e Tabela criado.

Agora vamos Testa a conexão com o Banco com as 4 Operação de um Crud "CREATE,READ,UPDATE,DELETE"

Crie um arquivo com o nome insert.php

<?php
require_once 'conexao.php';
function Insert(){
    try {
        $sql = 'INSERT INTO produtos(nome,valor,quantidade) VALUES (?,?,?);';
        $enviar = Conexao()->prepare($sql);
        $enviar->bindValue(1,'Arroz');
        $enviar->bindValue(2, '10');
        $enviar->bindValue(3, '50');
        $enviar->execute();
    } catch (PDOException $ex){
        echo 'Erro '.$ex->getMessage();
    }
};
Insert();

Crie um arquivo com o nome select.php

<?php
require_once 'conexao.php';
function Select(){
    $sql = "SELECT * FROM produtos";
    $enviar = Conexao()->prepare($sql);
    $enviar->execute();
    $result = $enviar->fetchAll(\PDO::FETCH_ASSOC);
    foreach($result as $value){
        echo 'Nome: '. $value['nome'];
        echo ' Valor: '. $value['valor'];
        echo ' Quantidade: '.$value['quantidade'] ."<br>";
    }
};
Select();

Crie um arquivo com o nome update.php

<?php
require_once 'conexao.php';
function Update(){
    $sql = 'UPDATE produtos SET nome = ? WHERE id = 1';
    $enviar = Conexao()->prepare($sql);
    $enviar->bindValue(1, 'Farinha');
    $enviar->execute();
};
Update();

Crie um arquivo com o nome deletar.php

<?php
require_once 'conexao.php';
function Delete(){
    $sql = 'DELETE FROM produtos WHERE id = ? ';
    $enviar = Conexao()->prepare($sql);
    $enviar->bindValue(1, '1');
    $enviar->execute();
};
Delete();

Agora é só testar!

Forte Abraço a Todos!!!

Comentários:

Deixe seu Comentario:
Confira outros conteúdos:
Comandos SQL no PostgreSQL

Comandos SQL no PostgreSQL

Comandos Essenciais no SQL

Comandos Essenciais no SQL

Sistema de Login com PHP e Mysql

Sistema de Login com PHP e Mysql

Construindo um Blog com Django

Construindo um Blog com Django

Utilizando variáveis CSS

Utilizando variáveis CSS