Como Conectar PHP a um Banco de Dados MySQL
Se você é iniciante em desenvolvimento de sites, saber como usar o script PHP para se conectar ao MySQL pode trazer vários benefícios. Assim, você pode modificar, visualizar ou gerenciar as tabelas criadas no banco de dados MySQL. Este artigo vai mostrar as maneiras mais fáceis de fazer isso. Então, vamos começar.
Conteúdo
Como Criar um banco de dados MySQL (Opcional)
Esse passo é necessário apenas se você ainda não tiver criado um banco de dados MySQL. Se você usa a Hostinger, um banco de dados MySQL pode ser criado facilmente em apenas alguns passos usando o hPanel:
- Localize Banco de Dados MySQL dentro da seção Bancos de dados.
- Preencha os campos necessários e clique em Criar.
Para instruções sobre como criar um banco de dados MySQL usando o cPanel, veja este tutorial. Porém tenha em mente que esses são bancos de dados em branco, e que você vai precisar preencher os dados antes de poder manipulá-los.
Importante! Anote as credenciais do banco de dados MySQL que você acabou de criar para o próximo passo. Também não se esqueça do nome de usuário da database e da senha também!
Duas Maneiras de Conectar um Script PHP com MySQL
Existem duas maneiras de se conectar com um banco de dados MySQL usando o PHP: MySQLi e PDO.
MySQLi significa MySQL Improved. Trata-se de uma extensão exclusiva para o MySQL que adiciona novos recursos para uma interface de database MySQL. O MySQLi é tanto processual quanto orientada por objeto – este último atributo foi herdado da versão mais antiga do MySQL.
O MySQL original divide uma tarefa em procedimentos lineares passo a passo, o que faz com que seja difícil de modificá-la. Afinal, você precisa editar o código desde o começo.
Enquanto isso, o MySQLi vê os dados como um conjunto de objetos intercambiáveis com funções, permitindo que os usuários adicionem ou removam dados com facilidade.
PDO significa PHP Data Object. Diferentemente do MySQLi, o PDO é apenas orientado para objetos e suporta uma variedade de tipos de bancos de dados diferentes que usam PHP, como MySQL, MSSQL, Informix e PostgreSQL.
Importante! As funções mysql_ originais estão obsoletas e não devem mais ser usadas, já que elas não oferecem segurança e não podem mais ser mantidas ou desenvolvidas.
Um dos recursos mais importantes que ambos suportam é o de prepared statements, que acelera o tempo necessário para o MySQL executar a mesma solicitação múltiplas vezes. Ele também é usado para evitar ataques de injeção SQL na hora de promover mudanças para o banco de dados.
Seja qual for o método que você estiver utilizando, você vai precisar da informação correta para que possa se conectar com o banco de dados MySQL que você criou. É aqui que os dados do banco de dados MySQL que você salvou antes serão úteis.
Você também precisa do nome do servidor ou do hostname correto para a configuração. A Hostinger usa o “localhost” como o hostname para os seus servidores MySQL. Em geral, esse é o nome que você vai querer usar se você fez o upload do seu script PHP para o mesmo servidor do banco de dados.
Em contraste, se você está se conectando com um banco de dados a partir de uma localização remota (por exemplo, seu computador), você terá que usar o endereço de IP do servidor MySQL. Para mais detalhes, contate o seu servidor de hospedagem para que eles possam fornecer a informação correta sobre o que usar como hostname.
Como Usar o MySQLi para Conectar um Script PHP para o MySQL
Siga estes passos para usar o MySQLi para um script PHP ao MySQL:
- Vá até Gerenciador de Arquivos → public_html
- Crie um Novo Arquivo ao clicar no ícone a partir do menu superior.
- Salve-o como databaseconnect.php. Você pode trocar para o nome que desejar, só mantenha a extensão php.
- Clique duas vezes para abrir o arquivo e então copie e cole as seguintes linhas de código nele. Mude os primeiros quatro valores embaixo de <?php com as credenciais que você anotou mais cedo.
<?php
$servername = "localhost";
$database = "databasename";
$username = "username";
$password = "password";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $database);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
mysqli_close($conn);
?>
Explicações para o Código MySQLi
O principal método usado neste script é o mysqli_connect(). Essa é uma função PHP interna para estabelecer uma nova conexão com um servidor MySQL.
No começo do nosso código, vamos ver algumas declarações variáveis e valores atribuídos a essas variáveis. Normalmente, precisamos de quatro deles para estabelecer uma conexão de banco de dados apropriada: $servername, $database, $username, e $password.
No código, vamos definir os detalhes do nosso banco de dados como os valores para aquelas variáveis, para que eles possam ser passados para a função.
Se a conexão não foi bem-sucedida, então a função die() é executada. Isso basicamente mata o nosso script e nos apresenta o erro de mensagem de conexão que definimos. Por padrão, o erro de conexão MySQL vai dizer Conexão falhou seguido de uma mensagem de erro exata descrevendo o problema.
Por outro lado, se a conexão MySQL foi bem-sucedida, o código vai imprimir Conectado com sucesso ao invés disso.
A última parte do código é mysqli_close, que simplesmente vai fechar a conexão com o banco de dados de modo manual. Se isso não for especificado, as conexões MySQL vão fechar por conta própria quando o script for encerrado.
Como Usar o PDO para Conectar um Script PHP no MySQL
O outro método de usar um script PHP para se conectar ao MySQL é usando o PDO. Isso é similar ao método anterior, mas com uma leve variação:
- No public_html, crie um arquivo chamado pdoconfig.php e insira o seguinte código. Como sempre, não se esqueça de substituir os valores genéricos com a informação do seu banco de dados. Aperte em Save and Close (Salvar e Fechar) assim que tiver terminado.
<?php
$host = 'localhost';
$dbname = 'nomedobancodedados';
$username = 'nomedousuario';
$password = 'senha';
- Crie outro arquivo chamado databaseconnect.php no mesmo diretório, mas com o seguinte código. Se você deu um nome diferente para o arquivo anterior, não se esqueça de mudar o valor de require_once.
<?php
require_once 'pdoconfig.php';
try {
$conn = new PDO("mysql:host=$host;dbname=$dbname", $username,
$password);
echo "Conectado a $dbname em $host com sucesso.";
} catch (PDOException $pe) {
die("Não foi possível se conectar ao banco de dados $dbname :" . $pe
>getMessage());
}
Explicações para o Código PDO
Um banco de dados PDO requer que você crie um novo objeto PDO com Data Source Name (DSN), Nome de Usuário e Senha.
O DNS define o tipo de banco de dados, o nome do banco de dados e qualquer outra informação relacionada à database, se necessário. Essas são as variáveis e os valores que nós definimos dentro do arquivo dbconfig.php, com apenas uma referência na linha require_once em databaseconnect.php.
Nesse último arquivo, você vai encontrar o código “try…catch..“. Isso significa que o script vai tentar se conectar ao MySQL usando o código fornecido. Mas, se ocorrer um problema, o código na seção catch será executado.
Você pode usar o catch block para exibir mensagens de erro de conexão ou rodar códigos alternativos se o try block falhar.
Se a conexão for bem-sucedida, ela irá imprimir a mensagem “Conectado a $dbname em $host com sucesso“. Contudo, se a tentativa falhar, o código de catch vai mostrar uma mensagem de erro simples e matar o script.
Como Conferir a Conectividade e Resolver Erros Comuns
Para checar se a conexão foi bem-sucedida, acesso o seu domínio da seguinte maneira: seudominio/databaseconnect.php. Se o nome do seu arquivo PHP for diferente, não se esqueça de mudá-lo de acordo com a sua escolha.
Você verá “Conected successfully” (Conectado com sucesso) ou variantes dessa mensagem se tudo estiver rodando sem outro problema.
Agora, se a conexão não for bem-sucedida, você verá algo diferente. As mensagens de erro são levemente distintas para o MySQLi e o PDO.
Erro de Senha Incorreta
Este erro acontece se nós mudamos a senha ou outra credencial no código PHP (mas não mudamos na base de dados em si).
Caso você veja uma mensagem de “Access Denied” (Acesso Negado) ou “Could not connect to database” (Não foi possível se conectar à base de dados) acompanhada de “(using password: YES)“ – algo como “(usando senha: SIM)” – no final, a primeira coisa a se fazer é conferir os detalhes da base de dados. Pode haver um typo ou uma parte pode estar faltando.
Não foi Possível se Conectar ao Servidor MySQL
Se você receber o código “Can’t connect to MySQL server on ‘server’ (110)” (Não foi possível se conectar ao servidor MySQL em ‘servidor’, erro 110) no MySQLi, isso significa que o script não obteve uma resposta do servidor.
Isso acontece quando definimos “server” ao invés de “localhost” como o $servername, e esse nome não é reconhecido.
A mensagem de erro no PDO vai ficar algo como “Connection failed: SQLSTATE[Hy000] [2002]” (Conexão falhou: SQLSTATE[Hy000] [2002]) seguido de mais detalhes explicando que o host MySQL não foi encontrado.
Mas a maneira de resolver isso é a mesma da solução acima. E, claro, é sempre importante de se lembrar de regra de ouro na hora de resolver um erro: confira o log de erros do seu site.
Esse registro pode ser encontrado na mesma pasta onde o script está rodando. Por exemplo, se estivermos rodando um script na public_html, podemos encontrar o error_log na mesma pasta.
Conclusão
Neste tutorial, nós fornecemos a você uma conhecimento bem básico sobre bancos de dados e como conectar PHP com MySQL. Agora você já sabe que pode fazer isso usando o MySQLi e o PHP Data Objects (PDO).
Esperamos que este guia tenha sido útil para aqueles que estão apenas começando com o desenvolvimento web. Afinal, conectar-se com um banco de dados é o primeiro e mais importante passo na hora de se trabalhar com scripts e configurações avançadas.
Fala com a gente nos comentários abaixo se você encontra qualquer problema seguindo este guia.
Comentários
July 02 2018
Olá... Eu tenho um Blog em wordpress http://centropreparatorio.com.br e gostaria de saber se é possível criar formulários personalizados para conexão direta com o Banco de Dados mysql dentro dos posts do Wordpress? Eu quero coletar algumas informações dos visitantes, realizando pesquisas.
July 02 2018
Olá, Pablo, tudo certo? Sim, é possível criar formulários personalizados que fazem conexão direta com o banco de dados. Existem três maneiras de fazer isso. A primeira maneira é através de um plugin chamado WPForms, que é parcialmente gratuito. A segunda maneira é através de outro plugin, muito mais robusto, completo e com mais opções, chamado Gravity Forms. O único problema é que ele é pago. A terceira maneira é fazendo manualmente, o que vai exigir uma carga de desenvolvimento WordPress bem avançada. Caso você precise de ajuda, entre em contato com o nosso suporte, eles resolverão isso rapidinho! :D
August 29 2020
Uso o Xammp e quando coloco 'localhost' na variável $host para conectar no banco de dados, ele conecta, mas quando troco o valor da variável $host pelo IP local do computador ($host='http://192.168.10.10') ele dá uma mensagem de erro. Porque? sabe dizer? mensagem Não foi possível se conectar ao banco de dados flutter :SQLSTATE[HY000] [2006] MySQL server has gone away
September 01 2020
Oi, Marcos, tudo bem? Por favor, entre em contato com seu provedor de hospedagem para uma ajuda mais direcionada. Se você for cliente Hostinger, é só entrar no seu painel de controle e chamar os agentes de atendimento. Certeza que eles vão te ajudar com sua dúvida. Se preferir, este link pode te ajudar também.
October 01 2021
MySQL Remoto tem que estar ativo para isso?
October 08 2021
Olá, Warley! O MySQL Remoto não precisa estar ativo para isso não. Só precisa ativá-lo se for usar um banco de dados remoto mesmo
February 18 2022
Gostaria de saber se os servidores de hospedagem dedicadas da hostiger possui a versão do MySQL 5.6+? Não achei essa informação em nenhum lugar do site e preciso verificar isto antes mesmo de adquirir algum plano e fazer o deploy da aplicação!
February 25 2022
Olá, Tiago! Nossos servidores usam o MariaDB versão 10.5 ?
August 05 2022
Olá Carlos, tudo bem? Em primeiro lugar; Excelente artigo, em segundo, gostaria que me mostrasse como fazer a conexão ao banco de dados usando MariaDB (a linguagem é PHP com PDO). Obrigado.
August 16 2022
Muito obrigado, Francisco! Por padrão, nós utilizamos o MariaDB nos nossos planos de Hospedagem Compartilhada e Cloud. Se você instalar um CMS (ex.: WordPress) pelo hPanel, ele já fará essa conexão automaticamente. Caso você esteja trabalhando com um site fora do painel, recomendo dar uma olhada neste vídeo aqui! ?