Exemplo de Conexão com Banco de Dados MySQL usando PDO em PHP 8.3:
1. Configuração do Banco de Dados
Antes de conectar ao banco de dados, você deve garantir que você tenha:
- Nome do banco de dados.
- Nome de usuário e senha do banco.
- Servidor (geralmente é localhost para banco local).
Suponhamos que você tenha as seguintes informações:
- Host: localhost
- Nome do banco: meubanco
- Usuário: root
- Senha: senha123
2. Código PHP para Conexão com Banco de Dados
<?php
// Configurações de conexão
$host = 'localhost';
$dbname = 'meubanco';
$username = 'root';
$password = 'senha123';
try {
// Criando a conexão PDO
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
// Definindo o modo de erro do PDO
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Conexão bem-sucedida ao banco de dados!";
} catch (PDOException $e) {
// Caso ocorra algum erro, exibimos uma mensagem
echo "Erro de conexão: " . $e->getMessage();
}
?>
Explicação do código:
$pdo = new PDO(...): A linha cria uma nova instância do PDO para estabelecer a conexão com o banco de dados MySQL. O primeiro parâmetro especifica o tipo de banco de dados (neste caso, mysql), o host (endereço do servidor), e o nome do banco de dados (meubanco). O segundo e terceiro parâmetros são o nome de usuário e a senha para a conexão.
$pdo->setAttribute(...): Aqui definimos o modo de erro do PDO para lançar exceções (PDO::ERRMODE_EXCEPTION). Isso significa que se ocorrer um erro na conexão, será gerado um erro PHP.
Bloco try-catch: O bloco try tenta fazer a conexão e, caso haja algum erro, o catch captura a exceção e exibe a mensagem de erro.
3. Testando a Conexão
Quando você executa o código, se a conexão for bem-sucedida, você verá a mensagem:
Conexão bem-sucedida ao banco de dados!
Caso contrário, se houver um erro (como um nome de banco de dados errado ou problema de autenticação), o erro será capturado e mostrado, como:
Erro de conexão: SQLSTATE[HY000] [1049] Unknown database 'meubanco'
4. Realizando Operações no Banco de Dados
Após estabelecer a conexão com o banco de dados, você pode realizar operações como inserir dados, consultar dados, atualizar ou excluir dados.
Aqui está um exemplo de consulta e inserção de dados usando o PDO.
Exemplo de Inserção de Dados:
<?php
// Dados para inserção
$nome = 'Maykon Silveira';
$idade = 25;
try {
// Preparando o comando SQL para inserção
$sql = "INSERT INTO usuarios (nome, idade) VALUES (:nome, :idade)";
// Preparando a execução da query
$stmt = $pdo->prepare($sql);
// Vinculando os parâmetros
$stmt->bindParam(':nome', $nome);
$stmt->bindParam(':idade', $idade);
// Executando a inserção
$stmt->execute();
echo "Dados inseridos com sucesso!";
} catch (PDOException $e) {
echo "Erro ao inserir dados: " . $e->getMessage();
}
?>
Exemplo de Consulta de Dados:
<?php
try {
// Consulta SQL para obter dados
$sql = "SELECT * FROM usuarios";
// Preparando e executando a consulta
$stmt = $pdo->query($sql);
// Loop para exibir os resultados
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo "Nome: " . $row['nome'] . " - Idade: " . $row['idade'] . "<br>";
}
} catch (PDOException $e) {
echo "Erro ao consultar dados: " . $e->getMessage();
}
?>
Explicação dos exemplos de inserção e consulta:
- Inserção de Dados:
- Usamos prepare() para preparar a consulta SQL com parâmetros.
- Os parâmetros :nome e :idade são vinculados aos valores reais usando bindParam().
- A consulta é executada com execute().
- Consulta de Dados:
- Utilizamos query() para executar a consulta SQL simples.
- O método fetch(PDO::FETCH_ASSOC) retorna os dados como um array associativo, permitindo que acessemos as colunas pelo nome.
5. Conclusão
Usando o PDO, você consegue:
- Estabelecer uma conexão segura com o banco de dados.
- Realizar consultas e operações de maneira mais segura, utilizando prepared statements para evitar SQL injection.
Esse é apenas um exemplo básico de como trabalhar com PDO em PHP. A partir daqui, você pode expandir o código para criar aplicações mais robustas, com validação de dados, transações, entre outros recursos.
Simples, rápido e eficiente, não é mesmo? 🚀
Atenciosamente,
Maykon Silveira