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.
<?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'] . "<br>"; }
$stmt->close();
$conn->close();
<?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'] . "<br>"; }
// 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]']);
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).
charset=utf8mb4 no DSN. Em MySQLi, chame set_charset('utf8mb4') após conectar.Precisa gerar senhas, validar CPF/CNPJ ou criar QR Code? Acesse nossos Geradores e Validadores Online.