Vous êtes sur la page 1sur 20

PHP

Ligação a bases de dados MySQL


INTRODUÇÃO
  Agoraque já aprendemos os básicos de bases de
dados e de SQL, chegou a altura que pôr esses
conhecimentos em prática utilizando o PHP;

  Para armazenar dados com o PHP, vamos


utilizar o SGBD MySQL;

  OPHP disponibiliza várias funções para aceder a


bases de dados MySQL;

  Todas essas funções começam com mysql_; 2


FUNÇÕES PHP PARA MYSQL
  Resumo das funções MySQL do PHP:

3
ACEDER A INFORMAÇÃO
  Oprocesso de ligação e manipulação de
informação de uma base de dados MySQL
através do PHP envolve 3 passos:

  Estabelecer uma ligação com o servidor MySQL


(mysql_connect);
  Seleccionar uma base de dados (mysql_select_db);
  Executar querys (mysql_query) e examinar os
resultados (mysql_fetch_array);

  Ao executar uma query, os resultados são


devolvidos através de um array, e temos que os
ler linha a linha através da função: 4
mysql_fetch_array;
ACEDER A INFORMAÇÃO
  Passo 1- verificar o servidor MySQL:
  No seu browser aceda ao localhost, que irá iniciar a pagina
do xammp, de seguida seleccione no menu lateral esquerdo:
phpmyadmin;

  Por defeito a password para entrar no phpmyadmin é:


  Username:root
  Password:”” (sem password)

  Vão ser estes dados que vai utilizar quando tentar aceder
ao servidor MySQL através do PHP;

  Na página que surgirá poderá criar tabelas, bases de


dados, definir campos, efectuar backups e restaurar
backups, etc; 5
ACEDER A INFORMAÇÃO
  Passo 2 – Estabelecer ligação ao servidor MySQL:
  Agora que sabemos os dados de acesso ao servidor MySQL
vamos programar;

  A primeira coisa a fazer é iniciar uma ligação ao servidor


de base de dados:
$db=mysql_connect(“servidor”, “username”,”password”);

  O primeiro parâmetro é nome ou IP do servidor, como


estamos a trabalhar com um servidor local, vamos utilizar
localhost .

  Os parâmetros de username e password são as credenciais


de acesso ao servidor MySQL. Respectivmente: “root” e “”; 6
ACEDER A INFORMAÇÃO
  Passo 2 – Estabelecer ligação ao servidor MySQL:
  Se a conexão for feita com sucesso, a função
mysql_connect retorna um objecto chamado de
recurso que representa a ligação ao servidor;

  Deve armazenar este recurso numa variável para


assim o podermos mais tarde passar como argumento
a outras funções;

  Se a ligação falhar por alguma razão, a função


retorna FALSE;

7
  A função de conexão ficaria então definida:
$db=mysql_connect(“localhost”, “root”,””);
ACEDER A INFORMAÇÃO
  Passo 3: Seleccionar a base de dados para efectuar
queries:
  Uma vez que estamos ligados ao servidor, vamos
seleccionar a base de dados que pretendemos futuramente
executar queries através da função: mysql_select_db:
mysql_select_db(“nome da base de dados”, “conexão”);
  No primeiro parâmetro introduzimos o nome da base de
dados que pretendemos aceder;

  No segundo enviados por parâmetro o recurso que nos foi


enviado pela função: mysql_connect e que armazenamos
numa variável $db;

  Este segundo parâmetro, apesar de opcional, permite à


função mysql_select_db saber qual é o servidor onde se
encontra a base de dados que especificamos; 8
ACEDER A INFORMAÇÃO
  Passo3: Seleccionar a base de dados para
efectuar queries:

  Assumindo que vamos trabalhar com uma base de


dados chamada Funcionarios, a função ficaria:

mysql_select_db(“Funcionarios”, $db);

  A função devolve TRUE se a ligação foi feito com


sucesso ou FALSE se não for feita com sucesso;

9
ACEDER A INFORMAÇÃO
  Passo 4: Executar queries
  Uma vez que está conectado ao servidor e já escolher
uma base de dados, pode agora executar querys sobre
ela;

  As querys são executadas através da função


mysql_query:
$resultados=mysql_query(“SQL Query”);

  O parâmetro a enviar é precisamente uma query


escrita em SQL;
10
ACEDER A INFORMAÇÃO
  Passo 4: Executar queries
  Assume que possuímos uma tabela Funcionários,
constituída:

  Nesta fase, é importante realçar dois tipos de querys.

  As simples que não envolvem parâmetros, por


exemplo: 11
$resultados=mysql_query(“SELECT Nome_func FROM
Funcionário”);
ACEDER A INFORMAÇÃO
  Passo 4: Executar queries
  E aquelas que envolvem parâmetros. Imagine que a
página PHP que está a codificar recebe um parâmetro
por URL que vai influenciar os resultados da sua
query;

  Por exemplo: recebe por parâmetro o id do


funcionário e pretende que seja devolvido o seu nome:
<?php
$id=$_REQUEST[”Id"];
?>

  Teria que ir buscar o valor usando $_REQUEST, e


armazenar esse valor numa variável;
12
ACEDER A INFORMAÇÃO
  Passo 4: Executar queries
  Vamos agora utilizar essa variável para construir a
query:

$resultados=mysql_query("SELECT Nome_func FROM Funcionario WHERE Id=’$id'");

  Repare que se a variável fosse uma string, era


necessário colocar entre plicas!!;

  Como retorno a função devolve os resultados no caso


de sucesso, no caso de insucesso devolve FALSE;

13
ACEDER A INFORMAÇÃO
  Passo 5: Ler os resultados
  Após executar a query, o PHP devolve um objecto do
tipo RESOURCE;

  A função mysql_fetch_array aceita este recurso como


parametro e utiliza-o para devolver a próxima linha
do resultado;

  A função mysql_fetch_array devolve uma linha do


resultado da query e quando não existirem mais
linhas devolve FALSE;

  A linha é devolvida num array associativo, que


associa o nome do campo ao seu valor; 14
ACEDER A INFORMAÇÃO
  Passo 5: Ler os resultados
  Exemplo:
$resultados=mysql_query("SELECT Nome_func FROM Funcionario WHERE Nome_func='$nome'");

  Enviamos a variável $resultados para a função


mysql_fetch_array:
$linha=mysql_fetch_array($resultados);
// o valor da linha será $linha["Nome_func"] == Bruno Oliveira

$linha=mysql_fetch_array($resultados);
// o valor da linha sera $linha["Nome_func"] == Ana Paiva

  Para ler os valores basta colocar o nome do campo


que pretende no array associativo para o visualizar;

  Repare que de cada vez que invocamos a função é


devolvido uma linha diferente; 15
ACEDER A INFORMAÇÃO
  Passo 5: Ler os resultados
  Logo para ler n resultados, vamos utilizar um ciclo
while, em que este terminará a sua execução quando
a função devolver FALSE;
while($linha=mysql_fetch_array($resultados)){
echo("nome funcionario: <br />");
echo($linha["Nome_func”]. "<br />");
}

  O exemplo em cima imprime todas as linhas


resultantes da query anteriormente apresentada;

16
ACEDER A INFORMAÇÃO
  Passo 6: Terminar a ligação
  Por uma questão de boas práticas de programação
devemos sempre terminar a ligação ao servidor
MySQL:
mysql_close($db);

  A função mysql_close recebe por parâmetro o recurso


que foi devolvido pela função mysql_connect;

  Desta forma a função mysql_close sabe qual é a


ligação que vai ser terminada;
17
ACEDER A INFORMAÇÃO
  Exemplo completo:
<?php
$id=1;
$db=mysql_connect("localhost", "root","") or die("Query failed: " .
mysql_error());
mysql_select_db("Funcionarios", $db) or die("Query failed: " .
mysql_error());
$resultados=mysql_query("SELECT Nome_func FROM Funcionario WHERE Id=
$id");

while($linha=mysql_fetch_array($resultados)){
echo("nome funcionario: <br />");
echo($linha["Nome_func"]."<br />");
}

mysql_close($db);
?>

18
ACEDER A INFORMAÇÃO
  De realçar a seguinte linha: or die("Query failed: " .
mysql_error()); Esta linha foi acrescentada
imediatamente a seguir à ligação ao servidor e de
à selecção da base de dados;

  Essa linha permite-nos detectar mais facilmente


os erros que possam ocorrer no código;

  Apresentando uma mensagem muito mais claro


sobre que erro é que está a ocorrer;

  Utilizamos o operador OR e a função DIE para


esse efeito; 19
INFORMAÇÃO ÚTIL
  Outras funções PHP da livraria MySQL:

Multimédia
CET:Desenvolvimento de Produtos
  http://php.net/manual/en/book.mysql.php -
Manual PHP sobre a livraria MySQL;

20

Vous aimerez peut-être aussi