PHP e MySQL: Como conectar e consultar o MySQL com PHP

O PHP e MySQL possuem total compatibilidade, e funcionam muito bem juntos. O PHP possui todas as funções para conectar ao MySQL, consultar tabelas e realizar operações de insert, entre outras.  Neste artigo, explicaremos o processo básico para se conectar ao mysql e realizar uma consulta, usando PHP.

Para se conectar e fazer consultas a um Banco de Dados MySQL, primeiramente é necessário criar um banco de dados MySQL através do painel de controle cPanel. É necessário ter em mãos o nome do banco, nome do usuário e senha. Tendo o banco criado, utilize o seguinte código PHP substituindo as primeiras linhas:

$user = “usuario_do_banco“;
$password = “senha_do_banco“;
$database = “nome_do_banco“;

Note que, antes de mais nada, você precisa criar uma tabela em seu banco de dados MySQL. Dessa forma, você pode fazer esta criação e gerenciamento usando a ferramenta phpMyAdmin. Em seguida, já poderá conectar o PHP com o MySQL.

php mysql como conectar

Realizando a conexão do PHP com o MySQL

Primeiramente, temos que conectar o PHP ao MySQL. Esta conexão é essencial, para que o PHP possa operar o banco de dados e trazer todas as informações necessárias. A cada execução do PHP é realizada uma conexão com o banco.

<?php 

# Substitua abaixo os dados, de acordo com o banco criado
$user = "usuario_do_banco"; 
$password = "senha_do_banco"; 
$database = "nome_do_banco"; 

# O hostname deve ser sempre localhost 
$hostname = "localhost"; 

# Conecta com o servidor de banco de dados 
mysql_connect( $hostname, $user, $password ) or die( ' Erro na conexão ' ); 

?>

Selecionando o banco de dados

Em seguida, você precisa informar para o MySQL qual o banco de dados que irá usar. Dentro de um servidor MySQL pode haver de um a vários bancos de dados diferentes. Normalmente se divide um banco de dados para cada finalidade. Por exemplo, um banco de dados para sua loja virtual, outro banco de dados para um cadastro de clientes, outro banco para um blog wordpress..

<?php

# Seleciona o banco de dados 
mysql_select_db( $database ) or die( 'Erro na seleção do banco' );

?>

Realizando uma consulta (SELECT)

O SELECT é o comando mais usado do MySQL. Por ele, fazemos consultas e trazemos para o PHP os dados existentes em uma tabela do banco de dados. Estes dados são colocados em um array (ou seja, uma variável que é uma matriz de dados).

<?php

# Executa a query desejada $query = "SELECT codigo,nome,endereco FROM tabela"; 
$result_query = mysql_query( $query ) or die(' Erro na query:' . $query . ' ' . mysql_error() );

?>

Exibir os registros na tela

Vamos agora percorrer o array (matriz), e exibir na tela cada registro encontrato em nossa tabela.

<?php

# Exibe os registros na tela 
while ($row = mysql_fetch_array( $result_query )) 
{ 
      print $row[codigo] . " -- " . $row[nome] . " -- " . $row[endereco]; 
}

?>

Código final e completo. PHP e MySQL conectando ao banco e realizando a consulta.

Segue agora, o código completo do nosso exemplo. Juntamos cada uma das etapas em um PHP único. Caso prefira, você pode copiar e colar em seu site, e realizar as adaptações necessárias.

<?php 

# Substitua abaixo os dados, de acordo com o banco criado
$user = "usuario_do_banco"; 
$password = "senha_do_banco"; 
$database = "nome_do_banco"; 

# O hostname deve ser sempre localhost 
$hostname = "localhost"; 

# Conecta com o servidor de banco de dados 
mysql_connect( $hostname, $user, $password ) or die( ' Erro na conexão ' ); 

# Seleciona o banco de dados 
mysql_select_db( $database ) or die( 'Erro na seleção do banco' );

# Executa a query desejada 
$query = "SELECT codigo,nome,endereco FROM tabela"; 
$result_query = mysql_query( $query ) or die(' Erro na query:' . $query . ' ' . mysql_error() ); 

# Exibe os registros na tela 
while ($row = mysql_fetch_array( $result_query )) { print $row[codigo] . " -- " . $row[nome] . " -- " . $row[endereco]; }

?>

Dúvidas frequentes

Mensagem de erro: “Erro na conexão”

Esta mensagem ocorre devido a um problema na primeira etapa, que é a conexão com o banco de dados. O problema estará mais precisamente no comando mysql_connect. Para solucionar, você precisa revisar o hostname, login e senha. O hostname deve ser “localhost” em 99% dos casos (quando o banco de dados estiver no mesmo servidor de hospedagem de sites). O login e senha são definidos no momento da criação do banco de dados pelo painel de controle.

O formato do nome do banco de dados no cPanel é sempre: usuario_nomedobanco . Por exemplo, se o seu domínio for meusitemodelo.com , o usuário cPanel será meusitem. Por exemplo, caso você crie um banco de dados com o nome “clientes”, terá assim, um nome do banco “meusitem_clientes”.

A causa do problema pode também ser um erro na senha do usuário do MySQL. Você pode resetar a senha deste usuário MySQL pelo painel de controle e tentar novamente.

Mensagem de erro: “Erro na seleção do banco”

Significa que o banco de dados que você está tentando usar nao existe, ou está com seu nome digitado errado. Dessa forma, este erro ocorre mais precisamente na função mysql_select_db().

Mensagem de erro: “Erro na query: Access denied for user ”@’localhost’ (using password: NO)”

Este erro ocorre quando o comando mysql_connect() não foi executado corretamente. Significa que a conexão com o banco de dados não ocorreu da forma certa. Por isso, revise o trecho do código que realiza a conexão com o banco MySQL. Por exemplo, verifique se o usuário e senha do MySQL estão corretos.

Erro: “Erro na query:SELECT codigo,nome,endereco FROM tabela Table ‘meusitem_nomedobanco.tabela’ doesn’t exist”

Isto significa que o PHP está tentando selecionar dados de uma tabela que não existe no banco de dados. Por isso, este erro ocorre quando a conexão do PHP com o MySQL foi realizada com sucesso, e quando o banco de dados foi selecionado corretamente. Portanto, o problema está na tabela do banco de dados.

Mais precisamente, o erro está nesta linha:

$query = "SELECT codigo,nome,endereco FROM tabela";

Para solucionar o problema, você precisa acessar o MySQL usando o phpMyAdmin e criar uma nova tabela. Verifique, também, se o nome digitado para sua tabela está correto. Por exemplo, nesta consulta, estamos solicitando os campos codigo, nome e endereco de uma tabela chamada tabela.

Este artigo foi útil?

Obrigado pela resposta!
Picture of Gustavo Carvalho

Gustavo Carvalho

Analista de sistemas, formado pela PUC-Rio. Programador, gestor de redes e diretor da empresa Homehost. Pai do Bóris, seu pet de estimação. Gosta de rock'n'roll, cerveja artesanal e de escrever sobre assuntos técnicos.

Contato: gustavo.blog@homehost.com.br

Ganhe 30% OFF

Indique seu nome e e-mail,e ganhe um cupom de desconto de 30% para sempre na Homehost!