Blog ComercialWeb - São Paulo - SP
E-mail: [email protected]
Atualizado: 06/10/2025

Como conectar banco de dados PHP com MySQL — guia prático

Como conectar banco de dados PHP com MySQL

O básico: credenciais e driver

Para conectar ao MySQL em PHP você pode usar MySQLi (orientado a objeto ou procedural) ou PDO. Ambos suportam prepared statements para evitar SQL Injection.

Conexão com MySQLi (OO)

<?php
$host = 'localhost';
$db = 'meu_banco';
$user = 'usuario';
$pass = 'senha';
$conn = new mysqli($host, $user, $pass, $db);
if ($conn->connect_error) { die('Erro: ' . $conn->connect_error); }
// SELECT com prepared statement
$stmt = $conn->prepare('SELECT id, nome FROM clientes WHERE status = ? LIMIT 10');
$status = 'ativo';
$stmt->bind_param('s', $status);
$stmt->execute();
$res = $stmt->get_result();
while ($row = $res->fetch_assoc()) { echo $row['id'] . ' - ' . $row['nome'] . "&lt;br&gt;"; }
$stmt->close();
$conn->close();

Conexão com PDO

<?php
$host = 'localhost'; $db = 'meu_banco'; $user = 'usuario'; $pass = 'senha';
$dsn = "mysql:host=$host;dbname=$db;charset=utf8mb4";
$opt = [
  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
  PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
  PDO::ATTR_EMULATE_PREPARES => false,
];
$pdo = new PDO($dsn, $user, $pass, $opt);
// SELECT com prepared statement
$stmt = $pdo->prepare('SELECT id, nome FROM clientes WHERE status = :status LIMIT 10');
$stmt->execute(['status' => 'ativo']);
foreach ($stmt as $row) { echo $row['id'] . ' - ' . $row['nome'] . "&lt;br&gt;"; }

INSERT seguro com prepared statements

// MySQLi
$stmt = $conn->prepare('INSERT INTO clientes (nome, email) VALUES (?, ?)');
$stmt->bind_param('ss', $nome, $email);
$nome = 'Ana'; $email = '[email protected]';
$stmt->execute();
// PDO
$stmt = $pdo->prepare('INSERT INTO clientes (nome, email) VALUES (:n, :e)');
$stmt->execute([':n' => 'Ana', ':e' => '[email protected]']);

Boas práticas e erros comuns

  • Nunca concatene entradas do usuário em SQL; use prepared statements.
  • Defina charset (utf8mb4) na conexão para evitar problemas com acentuação.
  • Padronize tratamento de erros (exceptions no PDO, checagem no MySQLi) e registre logs.
  • Separe credenciais do código-fonte (variáveis de ambiente/arquivo seguro fora do docroot).
  • Use índices nas colunas mais filtradas para melhorar o desempenho das consultas.

Este guia cobre o essencial para conectar com segurança. Adapte para seu projeto e padronize o acesso a dados (ex.: camada de repositório).

Perguntas frequentes

MySQLi ou PDO — qual escolher?
PDO é flexível e multi-banco; MySQLi é exclusivo do MySQL. Ambos utilizam prepared statements.
Como usar utf8mb4 na conexão?
Em PDO, use charset=utf8mb4 no DSN. Em MySQLi, chame set_charset('utf8mb4') após conectar.
O que são prepared statements?
Consultas parametrizadas: evitam SQL Injection e melhoram legibilidade e desempenho.
Como tratar erros de conexão?
Ative exceptions, registre logs e não exponha detalhes sensíveis em mensagens de erro.
Fonte: Redação


Mais Lidos

Ferramentas úteis

Precisa gerar senhas, validar CPF/CNPJ ou criar QR Code? Acesse nossos Geradores e Validadores Online.