Você está na página 1de 10

MYSQL

O MySQL, um dos mais populares sistemas de gerenciamento de banco de dados SQL


Open Source, desenvolvido, distribudo e tem suporte da MySQL AB. A MySQL AB uma
empresa comercial, fundada pelos desenvolvedores do MySQL, cujos negcios fornecer
servios relacionados ao sistema de gerenciamento de banco de dados MySQL. Para se
utilizar, administrar, e trabalhar com um banco de dados utilizada uma linguagem padro,
que a maior parte dos SGBD aceitam. Essa linguagem a SQL (Structured Query Language
-Linguagem de Consulta Estruturada). A SQL um conjunto de declaraes que so
utilizadas para acessar os dados utilizando gerenciadores de banco de dados.
SQL
Structured Query Language, ou Linguagem de Questes Estruturadas ou SQL, uma
linguagem de pesquisa declarativa para banco de dados relacional (bases de dados
relacionais). Embora o SQL tenha sido originalmente criado pela IBM, rapidamente surgiram
vrios "dialetos" desenvolvidos por outros produtores. Essa expanso levou necessidade
de ser criado e adaptado um padro para a linguagem. Esta tarefa foi realizada pela
American National Standards Institute (ANSI) em 1986 e ISO em 1987. O SQL foi revisto em
1992 e a esta verso foi dado o nome de SQL-92. Foi revisto novamente em 1999 e 2003
para se tornar SQL:1999 (SQL3) e SQL:2003, respectivamente. Tal como dito anteriormente,
o SQL, embora padronizado pela ANSI e ISO, possui muitas variaes e extenses produzidos
pelos diferentes fabricantes de sistemas gerenciadores de bases de dados.
DML - Linguagem de Manipulao de Dados
A DML (Data Manipulation Language - Linguagem de Manipulao de Dados) um
subconjunto da linguagem usada para selecionar, inserir, atualizar e apagar dados. SELECT
o comumente mais usado do DML, comanda e permite ao usurio especificar uma query
como uma descrio do resultado desejado. A questo no especifica como os resultados
deveriam ser localizados.
INSERT usada para somar uma fila (formalmente uma tupla) a uma tabela existente;
UPDATE para mudar os valores de dados em uma fila de tabela existente;
DELETE permite remover filas existentes de uma tabela;
BEGIN WORK (ou START TRANSACTION, dependendo do dialeto SQL) pode ser usado para
marcar o comeo de uma transao de banco de dados que pode ser completada ou no;
COMMIT envia todos os dados das mudanas permanentemente;
ROLLBACK faz com que as mudanas nos dados existentes desde que o ltimo COMMIT ou
ROLLBACK sejam descartadas.
COMMIT e ROLLBACK interagem com reas de controle como translao e locao. Ambos
terminam qualquer translao aberta e liberam qualquer cadeado ligado a dados.
DDL - Linguagem de Definio de Dados
O segundo grupo a DDL (Data Definition Language - Linguagem de Definio de Dados).
Uma DDL permite ao usurio definir tabelas novas e elementos associados. A maioria dos
bancos de dados de SQL tem extenses proprietrias no DDL. Os comandos bsicos da DDL
so:
CREATE cria um objeto (uma Tabela, por exemplo) dentro do base de dados;
DROP apaga um objeto do banco de dados.
Alguns sistemas de banco de dados usam o comando ALTER, que permite ao usurio alterar
um objeto, por exemplo, adicionando uma coluna a uma tabela existente.
DCL - Linguagem de Controle de Dados
O terceiro grupo o DCL (Data Control Language - Linguagem de Controle de Dados).
DCL controla os

aspectos de autorizao de dados e licenas de usurios para controlar quem tem acesso
para ver ou
manipular dados dentro do banco de dados.
Duas palavras-chaves da DCL:
GRANT - autoriza ao usurio executar ou setar operaes;
REVOKE - remove ou restringe a capacidade de um usurio de executar operaes.

CRIAR BASES / TABELAS: CREATE


Este comando permite a criao de bancos de dados ou de tabelas num banco de dados.
Sintaxe:
CREATE DATABASE < nome_db >;
onde:
- nome_db: indica o nome do Banco de Dados a ser criado.
Exemplo:
CREATE DATABASE curso;
No MySQL pode ser criado vrios tipos de tabelas, sendo que um banco de dados pode conter
diferentes tipos de tabelas: MyISAM, MERGE, HEAP, InnoDB e BerkeleyDB. O tipo padro o MyISAM.
MyISAM: MyISAM o tipo de tabela padro no MySQL baseada no cdigo ISAM possuindo vrias
extenses teis, onde o ndice armazenado em um arquivo com extenso .MYI (MYIndex), e os
dados so armazenados em um arquivo com a extenso .MYD (MYData). possvel verificar/reparar
tabelas MyISAM com o utilitrio myisamchk.
InnoDB: O InnoDB prov o MySQL com um mecanismo de armazenamento seguro com commit,
rollback, e recuperao em caso de falhas. InnoDB faz bloqueio a nvel de registro e tambm fornece
uma leitura sem bloqueio em SELECT em um estilo consistente com Oracle. Estes recursos aumentam
a performance e a concorrncia de multi-usurios. InnoDB o primeiro gerenciador de
armazenamento no MySQL que suportam restries FOREIGN KEY.
Sintaxe:
CREATE TABLE < nome_tabela > (
nome_atributo1 < tipo > [ NOT NULL ],
...
nome_atributoN < tipo > [ NOT NULL ]
PRIMARY KEY(nome_atributo)
) [ENGINE=tipo];
onde:
- nome_tabela: indica o nome da tabela a ser criada.
- nome_atributo: indica o nome do campo a ser criado na tabela.
- tipo: indica a definio do tipo de atributo ( integer(n), char(n), ... ).
PRIMARY KEY: Define um ou mais campos como chave primria da tabela.
DEFINIO DOS CAMPOS:
col_name type [NOT NULL | NULL] [DEFAULT default_value] [AUTO_INCREMENT] [[PRIMARY] KEY]
[COMMENT 'string']
Exemplos:
create table cliente (
CPF char(11) not null primary key,
nome varchar(20) not null,
endereco varchar(50),
data_nascimento char(10) ) ENGINE=MyIsam
create table filme (
nome varchar(20) not null,
ator_principal varchar(20) comment nome do ator principal,
diretor varchar(20),
genero varchar(10),
primary key(nome, ator_principal),
check genero in ("Romance","Ao","Drama","Terror","Comdia"))

No primeiro exemplo foi criada a tabela cliente. Como a chave primria era simples, a
informao primary key foi colocada ao lado do respectivo campo. Quando a chave composta, deve
ser definida em separado, como pode ser observado no exemplo da criao da tabela filme.
Repare que tambm foi utilizado o atributo not null na criao de alguns campos, ele usado
quando queremos forar o usurio a colocar o dado.
No segundo exemplo, utilizado a clusula check, ela usada para determinar uma condio
ao campo. No caso do exemplo, ele define que o gnero do filme s pode ser Romance, Ao, Drama,
Terror ou Comdia.

CHAVE PRIMRIA E ESTRANGEIRA

Quando se trabalha com banco de dados um conceito importantssimo o conceito de


chave. A partir do MySQL 5.0 foi introduzido o conceito de integridade referencial as relaes
entre tabelas no banco de dados.
Chave Primria ou Primary key um campo da tabela com valores nicos que
caracterizam os registros. J a chave estrangeira ou foreign key nada mais do que a chave
primria de outra tabela, que servir como elo entra as tabelas.
O InnoDB implementa as restries de integridade CASCADE, RESTRICT, SET NULL e
SET DEFAULT. No primeiro caso, ao se remover um registro da tabela referenciada pela chave
estrangeira os registros relacionados quele removido sero eliminados em todas as tabelas
relacionadas. O RESTRICT no permite a remoo de registros que possuam relacionamentos
em outras tabelas. Os dois ltimos atribuem os valores DEFAULT ou NULL para as chaves
estrangeiras cujos registros relacionados foram excludos.
Sintaxe:
[CONSTRAINT [symbol]] FOREIGN KEY
[index_name] (index_col_name, ...)
REFERENCES tbl_name (index_col_name,...)
[ON DELETE reference_option]
[ON UPDATE reference_option]

CONSULTAS: SELECT
Sintaxe bsica:
SELECT [DISTINCT] expressao [AS nome-campo]
[FROM nome das tabelas]
[WHERE condicao]
[ORDER BY attr_name1 [ASC | DESC ]]
O comando select utilizado para realizar consultas. Suponha que deseja encontrar o nome de todos
os associados de uma locadora que morassem na cidade de Braslia. A estrutura bsica dessa
consulta seria:
select nome from associado where cidade = "Braslia"
No select, se coloca o campo que se quer pesquisar e no from de que tabela que a pesquisa. A
clusula where utilizada quando se deseja colocar alguma restrio na pesquisa. Na SQL permitida
a existncia de tuplas duplicadas. Quando se quer no resultado de uma pesquisa apenas valores
diferentes usa-se a palavra distinct da seguinte forma:
select distinct nome from associado
Se voc quiser deixar explcito de que a duplicao ser aceita, pode-se usar all no lugar de distinct.
Quando se deseja mostrar todos os campos de uma tabela usa-se a seguinte configurao:
select * from cliente
Esse exemplo mostra todos os campos de cliente. Outra caracterstica importante da clusula select
que pode-se realizar operaes nela, como mostrado logo abaixo:
select idade*10 from filme
Essa operao no alterar o campo na tabela, mas apenas mostrar como resultado da pesquisa a
idade do filme vezes 10.

FROM
Na clusula from, como foi dito anteriormente, coloca-se as tabelas que foram usadas.
importante ressaltar que mais de uma tabela pode ser utilizada. No exemplo a seguir, realizada uma
pesquisa para saber quais so os clientes que esto com filmes:
select cliente.nome from cliente, aluguel where cliente.codigo = aluguel.codigo_cliente
Observe que informada de que tabela cada campo ao usar, por exemplo, ao selecionar
cliente.nome. Essa construo s necessria se os campos de diferentes tabelas tiverem nomes
iguais, caso contrrio essa construo se torna opcional. Costuma-se utiliz-la para deixar claro de
que tabela o campo.
WHERE
Na clusula where, coloca-se restries para a pesquisa. No exemplo anterior foi feita uma pesquisa
onde o cdigo do cliente fosse igual ao cdigo do cliente que alugou um determinado filme, assim
poderamos saber o nome de quem aluguel o filme, pois na tabela de aluguel no existe o nome do
cliente, apenas o cdigo. Algumas palavras-chave podem ser usadas junto com a clusula where, elas
so: between, and, not e or como nos exemplos a seguir, assim como operadores de comparao
como <, >, = e <>.
select nome from cliente where codigo between 1000 and 1005
select aluguel.nome from cliente, aluguel where (cliente.nome = Maria Aparecida or cliente.nome
= Joo da Silva) and cliente.codigo = aluguel.codigo_cliente
No primeiro exemplo seleciona-se o nome dos clientes que tem cdigo entre 1000 e 1005. No
segundo, o nome do filme que foi alugado pelo cliente com nome de Maria Aparecida ou Joo da Silva.
Para verificar se um valor nulo, usa-se por exemplo:
Select ... where preco is null

Na clausula where tambm podem ser combinados os seguintes operadores:


between ... and ... entre dois valores ( inclusive )
in ( .... ) numa lista de valores
like num padrao de caracteres
is null um valor nulo
APELIDOS: AS
As vezes interessante renomear (apelidar) um campo na hora de apresent-lo. Isso pode ser
necessrio quando, por exemplo, dois campos de tabelas diferentes sero apresentados. Para realizar
essa mudana usa se a palavra as. Essa palavra pode ser utilizada tanto para renomear campos como
para renomear tabelas. Algumas vezes necessrio renomear tabelas para facilitar a escrita:
select aluguel.nome as nome_filme from aluguel where nome_filme = "Titanic"
select cliente1.nome, cliente2.nome from cliente as cliente1, cliente as cliente2
where cliente1.data_nascimento = 1955-05-05 and cliente2.data_nascimento = 1980-12-03
PESQUISAR A PARTIR DE PARTES DE STRINGS: LIKE
Para implementar uma pesquisa com base num padro de caracteres, utiliza-se a palavra like na
clusula where. Pode ser combinado com o caractere "%" (percentagem), que indica zero ou mais
caracteres na posio, ou ento o "_" (underline) que equivale e exatamente um caractere.
select nome from cliente where nome like Maria%
select nome from cliente where nome like %ata%
select nome from cliente where nome like Juli_
select nome from cliente where nome like _ _ _ _ _
No primeiro exemplo, so selecionados todos os clientes que tm o nome comeando por Maria. No
segundo exemplo, todos os clientes que possuem a seqncia de caracteres "ata" no incio, meio ou
fim do nome. No terceiro exemplo, seleciona-se todos os nomes que comeam com Juli e tm apenas
um caractere depois. E no quarto exemplo, seleciona-se todos os nomes que possuem 5 caracteres.
possvel tambm o uso de de not like para procurar por diferenas ao invs de igualdades.
ORDENAR RESULTADOS: ORDER BY

Para ordenar o resultado da pesquisa, utiliza-se o comando order by, que ordena, por padro, de
modo ascendente. Caso seja necessrio ordenar de modo descendente acrescenta-se o desc.
select * from cliente order by nome
select * from cliente order by nome desc, codigo asc
No primeiro exemplo, ordena-se pelo nome de modo ascendente e no segundo descendente e
ascendente. possvel ordenar duas colunas como mostrado no segundo exemplo, ordenando na
ordem em que forem apresentadas.

OUTRAS CONSULTAS
select nome, telefone, CURDATE() AS Data atual, DATEDIFF(CURDATE(), data_locacao) as
Tempo decorrido from Cliente;
Demais funes: http://dev.mysql.com/doc/refman/4.1/pt/date-and-time-functions.html
FUNES
A SQL permite o uso de funes pr-definidas para realizar operaes de soma(sum),
mnimo(min), Mximo(max), mdia(avg) e contagem(count). As funes avg e sum impem que a
entrada da funo sejam nmeros, j as outras funes aceitam strings como entrada. As funes
podem ser usadas de diferentes formas. Vamos citar um exemplo onde soma-se o preo de todos os
aluguis realizados por um cliente.
select nome,sum(preco) from cliente, aluguel where codigo = codigo_cliente group by nome
Quando deseja-se aplicar condies a grupos usa-se a clusula having. Por exemplo, vamos reunir
todos os clientes que possuem uma conta maior que 50 reais.
select nome,sum(preco) from cliente, aluguel where codigo = codigo_cliente group by nome
having sum(preco) > 50

INSERO DE REGISTROS: INSERT


Sintaxe bsica:
INSERT INTO destino [(campo1[, campo2[, ...]])]
VALUES (valor1[, valor2[, ...])
A instruo INSERT INTO possui basicamente as seguintes partes:
- Destino: O nome da tabela em que os registros devem ser anexados.
- campo1, campo2: Nomes dos campos aos quais os dados devem ser inseridos.
- valor1, valor2: Valores para inserir nos campos especificados do novo registro. Cada valor inserido
no campo que corresponde posio do valor na lista: Valor1 inserido no campo1 do novo registro,
valor2 no campo2 e assim por diante. Os valores devem ser separados com uma vrgula, de devem
estar entre aspas () caso sejam do tipo caractere ou data.
Observe os exemplos a seguir para a tabela filme, que possui os seguintes campos: nome,
ator_principal, diretor, gnero, idade, copia e duracao.
insert into filme values(Titanic, Leonardo DiCaprio, Fulano de Tal, romance, 8, 1, 190)
insert into filme (duracao, copia, idade, genero, diretor, ator_principal, nome) values(190, 1,8,
romance,Fulano de Tal, Leonardo DiCaprio, Titanic)
Veja que nos dois exemplos insere-se os mesmo dados mas no segundo exemplo no precisa-se
respeitar a ordem dos campos no banco pois esto sendo informados os campos que recebero os
dados. Dentro de uma operao de insero pode ser utilizada uma pesquisa para achar as tuplas que
deve ser inseridos dados.
Suponha que todos os dependentes sero transformados em clientes, ento sero inseridos na tabela
cliente todos os dependentes que se encontram na tabela associados.
insert into cliente
select nome, Avenida Teste , CPF, NULL, NULL
from associado
Tambm permitido a insero manual de diversos registros num comando apenas:
insert into pais (sigla, nome)
values ('US','Estados Unidos'), ('TW','Taiwan'), ('PT','Portugal');

EXCLUSO DE REGISTROS: DELETE

Remove registros de uma ou mais tabelas listadas na clusula FROM que satisfazem a clusula
WHERE.
Sintaxe:
DELETE FROM tabela WHERE critrio
Onde:
- tabela: O nome da tabela de onde os registros so excludos.
- critrio: Uma expresso que determina qual registro deve ser excludo.
O comando DELETE exclui registros inteiros e no apenas dados em campos especficos. Se a inteno
alterar ou excluir valores em campos especficos, deve ser utilizado o comando UPDATE.
No exemplo a seguir, sero removidos todos os filmes cadastrados no banco que tenham durao
maior que 120 minutos.
delete from filme where duracao>120
Como no insert, possvel utilizar uma clusula select embutida ao delete. Vamos excluir todos os
filmes que foram alugados por clientes e que tinham como data de devoluo o dia 12/10/2006.
delete from filme where nome in (select nome_filme from aluguel where data_devolucao =
"12/10/2006")

ALTERAR VALORES DE REGISTROS: UPDATE


O comando UPDATE altera os valores de alguns campos de uma tabela especificada, com base em
critrios especficos.
Sintaxe:
UPDATE tabela
SET campo1 = valornovo, campo2 = valornovo, ...
WHERE critrio;
Onde:
- tabela: O nome da tabela onde voc quer modificar os dados.
- valornovo: Uma expresso que determina o valor a ser inserido no campo do registro que ser
atualizado.
- critrio: Uma expresso que determina quais registros devem ser atualizados (s os registros que
satisfazem a expresso so atualizados).
Observe o exemplo a seguir:
update aluguel set data_devolucao = 12/01/2007 where data_devolucao = 11/01/2007
Nesse exemplo sero modificadas todas as fitas que deveriam ser devolvidas no dia "11/01/2007"
para o dia "12/01/2007".

ALTERAR ESTRUTURAS DAS TABELAS: ALTER TABLE


Para adicionar um novo campo a uma tabela utilizamos o alter table. As tuplas desse campo inserido
recebero o NULL para seus valores. Observe como utilizar o alter table.
alter table cliente add RG varchar(10)
Como podemos observar, informamos a tabela que ter um campo adicionado, o nome do campo e o
domnio.
O alter table pode ser usado tambm para remover um campo, ao invs de utilizar o add, usa-se drop,
como no exemplo a seguir.
alter table cliente drop endereco
Informa-se o nome da tabela e o campo a ser removido.
O tipo de uma tabela tambm pode ser modificado:
alter table cliente TYPE = InnoDB

EXCLUIR BASES / TABELAS: DROP


Para remover uma base de dados ou uma tabela, se utiliza o comando drop.
Sintaxe:
DROP DATABASE <nome da base>
Sintaxe:
DROP TABLE <nome da tabela>

Fontes: CDTC, MYSQL.COM

ACESSO A BANCO DE DADOS


PHP tem suporte a um grande nmero de bancos de dados, como dBase, Interbase, mySQL, Oracle, Sybase,
PostgreSQL e vrios outros.
Para acessar bases de dados num servidor mySQL, necessrio antes estabelecer uma conexo. Uma forma de
fazer isso utilizar o comando mysql_connect:
int mysql_connect(string [host[:3306]] , string [login] , string [senha] );
O valor de retorno um inteiro que identifica a conexo, ou falso se a conexo falhar. Antes de tentar estabelecer
uma conexo, o interpretador PHP verifica se j existe uma conexo estabelecida com o mesmo host, o mesmo login e a
mesma senha. Se existir, o identificador desta conexo retornado.
Para encerrar uma conexo explicitamente, deve ser utilizado o comando mysql_close, que tem a seguinte
assinatura:
int mysql_close(int [identificador da conexo] );
Se o identificador no for fornecido, a ltima conexo estabelecida ser encerrada.
Depois de estabelecida a conexo, preciso selecionar a base de dados a ser utilizada, atravs do comando
mysql_select_db. Se o identificador da conexo no for fornecido, a ltima conexo estabelecida ser utilizada.
int mysql_select_db(string base, int [conexao] );
Para executar consultas SQL no mySQL, utiliza-se o comando mysql_query, que tem a seguinte assinatura:
int mysql_query(string query, int [conexao] );
O valor de retorno falso se a expresso SQL for incorreta, e diferente de zero se for correta.
OUTRAS:
Int mysql_affected_rows(); Obtm o nmero de linhas atingidas na operao (INSERT, UPDATE, DELETE)
Int mysql_num_rows(int result); Obtm o nmero de linhas em um resultado
int mysql_result(int result, int linha, mixed [campo] ); Retorna dados do resultado
mysql_close Fecha a conexo MySQL

========================================================
==================================

Exemplo da Agenda, somente os cdigos em Php:

Arquivo: conectar.php
<?PHP
$ligacao = mysql_connect("localhost","aluno","aluno");
If(!$ligacao)
{
Echo("No foi possvel estabelecer a ligao com o Mysql");
Return 0;
}
$ok = mysql_select_db("agenda");
If(!$ok) {
Echo("No foi possvel estabelecer a conexo com a base de dados");
Return 0;
}
?>

Arquivo: gravar.php

<?PHP
$nome = $_POST["nome"];
$email = $_POST["email"];
$telefone = $_POST["telefone"];
$sexo = $_POST["sexo"];
$obs = $_POST["obs"];
require("conectar.php");
$consulta = "select *from livro where email='$email'";
$rst = mysql_query($consulta);
$qtd = mysql_num_rows($rst);
If($qtd>0)
{
echo "Email j cadastrado!!!<br>";
}
else
{
$insere
=
"INSERT
INTO
livro
nome='$nome',email='$email',telefone='$telefone',sexo='$sexo',obs='$obs'";
mysql_query($insere);

SET

If(mysql_affected_rows( )>0)
{
Echo("cadastro efetuado com sucesso...");
}
else
{
Echo("No foi possvel inserir os dados na tabela...");
}
}
mysql_close($ligacao);
?>

Arquivo: pesquisar.php
<?PHP
$email = $_POST["email"];
require("conectar.php");
$consulta = "select *from livro where email='$email'";
$rst = mysql_query($consulta);
$qtd = mysql_num_rows($rst);
If($qtd>0)
{
$nome = mysql_result($rst,0,"nome");
$email = mysql_result($rst,0,"email");
$telefone = mysql_result($rst,0,"telefone");
$sexo = mysql_result($rst,0,"sexo");
$obs = mysql_result($rst,0,"obs");
echo("<pre>
<form action='alterar.php' method='POST'>
Nome....: <input type='text' value='$nome' name='nome' size='50' maxlenght='50'
readonly> <br>

Email...: <input type='text' value='$email' name='email' size='50' maxlenght='50'


readonly> <br>
Telefone:
<input
type='text'
value='$telefone'
name='telefone'
size='13'
maxlenght='13'> <br>
Sexo....:");
if($sexo=='M')
{
echo("<input type='radio' name='sexo' value='M' checked>Masculino <input
type='radio' name='sexo' value='F'>Feminino <br>");
}
else
{
echo("<input
type='radio'
name='sexo'
value='M>Masculino
<input
type='radio' name='sexo' value='F' checked>Feminino <br>");
}
echo("
Obs.....: <textarea rows='5' cols='40' name='obs'>$obs</textarea> <br>
<table border=1>
<tr>
<td><a href=''></td<td></td>
</table>
<input type='submit' value='alterar'> <input type='button'
onclick=\"document.location.href='excluir.php?email=$email'\"> <br>
</form>
</pre>
");
}
else
{
Echo("No foi possvel encontrar os dados na tabela...");
}

value='excluir'

mysql_close($ligacao);
?>

Arquivo: alterar.php
<?PHP
$nome = $_POST["nome"];
$email = $_POST["email"];
$telefone = $_POST["telefone"];
$sexo = $_POST["sexo"];
$obs = $_POST["obs"];
require("conectar.php");
$alterar
=
"update
livro
nome='$nome',email='$email',telefone='$telefone',sexo='$sexo',obs='$obs'
email='$email'";
mysql_query($alterar);
If(mysql_affected_rows( )>0)
{
Echo("Alterao efetuada com sucesso...");
}
else
{
Echo("No foi possvel alterar os dados na tabela...");
}

set
where

mysql_close($ligacao);
?>

Arquivo: excluir.php
<?PHP
$email = $_GET["email"];
require("conectar.php");
$excluir = "delete from livro where email='$email'";
mysql_query($excluir);
If(mysql_affected_rows( )>0)
{
Echo("cadastro excluido com sucesso...");
}
else
{
Echo("No foi possvel localizar os dados na tabela...");
}
mysql_close($ligacao);
?>

Você também pode gostar