Como usar MySQLi no PHP?
O MySQLi (MySQL Improved) é uma extensão do PHP que permite interagir com bancos de dados MySQL de forma otimizada e segura. Ele pode ser utilizado de duas maneiras: procedural e orientado a objetos.
Conectando ao MySQL com MySQLi
Modo Procedural
<?php
$conexao = mysqli_connect("localhost", "usuario", "senha", "meu_banco");
if (!$conexao) {
die("Falha na conexão: " . mysqli_connect_error());
}
echo "Conexão bem-sucedida!";
?>
Aqui, mysqli_connect()
estabelece a conexão com o banco de dados.
Modo Orientado a Objetos
<?php
$conexao = new mysqli("localhost", "usuario", "senha", "meu_banco");
if ($conexao->connect_error) {
die("Erro na conexão: " . $conexao->connect_error);
}
echo "Conexão bem-sucedida!";
?>
Nesse formato, usamos um objeto mysqli para gerenciar a conexão.
Executando Consultas com MySQLi
Inserindo Dados
<?php
$sql = "INSERT INTO usuarios (nome, email) VALUES ('João Silva', 'joao@email.com')";
if (mysqli_query($conexao, $sql)) {
echo "Registro inserido com sucesso!";
} else {
echo "Erro: " . mysqli_error($conexao);
}
?>
Aqui, mysqli_query()
executa um comando SQL para inserir dados.
Buscando Dados
<?php
$sql = "SELECT id, nome, email FROM usuarios";
$resultado = mysqli_query($conexao, $sql);
while ($linha = mysqli_fetch_assoc($resultado)) {
echo "ID: " . $linha["id"] . " - Nome: " . $linha["nome"] . " - Email: " . $linha["email"] . "<br>";
}
?>
Aqui, mysqli_fetch_assoc()
recupera os dados como um array associativo.
Segurança com Prepared Statements
Para evitar SQL Injection, utilize prepared statements:
<?php
$stmt = $conexao->prepare("SELECT * FROM usuarios WHERE email = ?");
$stmt->bind_param("s", $email);
$email = "joao@email.com";
$stmt->execute();
$resultado = $stmt->get_result();
?>
O uso de bind_param()
garante que os valores sejam tratados como entrada segura.
MySQLi ou PDO: Qual a melhor opção para conectar o PHP ao MySQL?
O MySQLi é uma das formas mais populares de interação entre PHP e MySQL. Ele permite a manipulação de bancos de dados de maneira eficiente e segura, especialmente quando se utiliza prepared statements para evitar SQL Injection. Escolher entre MySQLi e PDO depende das necessidades do projeto, mas para quem trabalha exclusivamente com MySQL, MySQLi pode ser uma ótima escolha.
Algumas aplicações:
- Criação de sistemas de autenticação
- Manipulação de bancos de dados em sites dinâmicos
- Gestão de cadastros e informações de usuários
- Interação com grandes volumes de dados armazenados
Dicas para quem está começando
- Use MySQLi se for trabalhar exclusivamente com MySQL.
- Prefira prepared statements para evitar vulnerabilidades de segurança.
- Evite usar
SELECT *
, especifique apenas as colunas necessárias. - Certifique-se de fechar conexões após o uso para economizar recursos.
- Se precisar de compatibilidade com outros bancos, considere o uso de PDO.
Contribuições de Rafael Nogueira