Sie sind auf Seite 1von 6

21/11/13

Tutorial completo MySQL com PHP | voindo.eu | Eduardo Pereira | Web Design | Develop

TUTORIAL COMPLETO MYSQL COM PHP


SOBRE BLOG POR EDUARDO PORTFOLIO APLICAES | 1 DE JUNHO DE 2010 | MYSQL, PHP

HOME

PUBLICIDADE

12

Hoje em dia, sites dinmicos so uma constante na web. Longe vai o tempo que os sites eram CONTACTOS simples pginas estticas HTML.
NAVEGAO

Os contedos armazenados, interaco com utilizadores, gesto de contedos so peas chave dos sites de hoje. Grande pilar nesta dinamizao est as base de dados. No sendo obrigatrio como natural, um complemento eficaz no armazenamento da informao. Neste tutorial vamos passar pela utilizao de base e dados MySQL com PHP. Lamento o facto de apenas falar em PHP e material opensource, mas assim a vida, s h lugar para as coisas boas

Partindo do principio que j est instalado o PHP e o MySQL vamos passar frente dessa parte. Contudo poder usar o WAMP para windows, muito bom e fcil de instalar: Download WAMP Server

POSTS POPULARES
Alterar contedo DIV com javascript (jQuery) 26,024 views Renomear tabela ou coluna em MySQL 15,526 views Tutorial completo MySQL com PHP 11,442 views

CRIAR UMA BASE DE DADOS:


Vamos criar uma base de dados com o nome teste e uma nica tabela com o nome utilizadores. Em baixo deixo o cdigo para criar a base de dados, respectiva tabela e adicionar dados de exemplo.

Funo JavaScript equivalente ao PHP Explode 7,576 views Friendly URLs com mod_rewrite (URLs Amigveis) 7,533 views

1 C R E A T ED A T A B A S Ei fN O TE X I S T S` t e s t e ` ; 2 U S Et e s t e ; 3 C R E A T ET A B L E` u t i l i z a d o r e s `( 4 ` i d `I N T ( 1 1 )N O TN U L LA U T O _ I N C R E M E N T , 5 ` n o m e `V A R C H A R ( 1 0 0 )D E F A U L TN U L L , 6 ` c i d a d e `V A R C H A R ( 1 0 0 )D E F A U L TN U L L , 7 ` w e b `V A R C H A R ( 1 0 0 )D E F A U L TN U L L , 8 ` i d a d e `S M A L L I N T ( 6 )D E F A U L TN U L L , Seleccionar Ms 9 P R I M A R YK E Y( ` i d ` ) 1 0 )E N G I N E = I N N O D BD E F A U L TC H A R S E T = l a t i n 1 ; 1 1 1 2 I N S E R TI N T O` u s e r s ` ( ` i d ` , ` n o m e ` , ` c i d a d e ` , ` w e b ` , ` i d a d e ` )V A L U E S( 1 , ' M i g u e l ' 1 3 I N S E R TI N T O` u s e r s ` ( ` i d ` , ` n o m e ` , ` c i d a d e ` , ` w e b ` , ` i d a d e ` )V A L U E S( 2 , ' J o a o ' 1 4 I N S E R TI N T O` u s e r s ` ( ` i d ` , ` n o m e ` , ` c i d a d e ` , ` w e b ` , ` i d a d e ` )V A L U E S( 3 , ' A n a ' 1 5 I N S E R TI N T O` u s e r s ` ( ` i d ` , ` n o m e ` , ` c i d a d e ` , ` w e b ` , ` i d a d e ` )V A L U E S( 4 , ' D i o g o ' 1 6 2013 I N | VOINDO.EU S E R TI N T O | ` u s e r s ` ( ` PORTFOLIO i d ` , ` n o m e ` , SOBRE ` c i d a d e ` CONTACTOS , ` w e b ` , ` i d a d e ` )V A L U E S( 5 , ' J u l i a '

ARQUIVO

TAGS

EDUARDO PEREIRA | QUASE TODOS OS DIREITOS RESERVADOS

Achados css design email explode form formularios funo html inspiration

CONECTANDO BASE DE DADOS:


Para nos conectarmos base de dados usando o PHP (Ou qualquer outra linguagem de programao) precisamos de estabelecer uma ligao. Para esta ligao precisamos sempre de alguns dados importantes: hostname (nome do servidor) username da base de dados password nome da base de dados O procedimento bsico efectuarmos uma ligao e autenticao ao MySQL, e de seguida escolher a base de dados a trabalhar. Neste caso ponderamos j o caso de a ligao falhar

jquery js limit limitar MySQL paginao SEF SEO Variveis w ebdesign zip

JavaScript

PHP
zip PELC

www.voindo.eu/2010/06/01/tutorial-completo-mysql-com-php/

1/6

21/11/13

Tutorial completo MySQL com PHP | voindo.eu | Eduardo Pereira | Web Design | Develop

(devido a password invlida ou permisses invlidas), e caso falhe no faz sentido continuarmos com o script. Portanto: 1 2 3 4 5 6 7 8 9 1 0 1 1 < ? p h p $ h o s t n a m e=" l o c a l h o s t " ; $ u s e r n a m e=" u s e r T e s t e " ; $ p a s s w o r d=" p a s s T e s t e "

/ /V a m o sc o n s i d e r a rl o c a l h o s to um q u i n al o c a l / /U s e r n a m eu s e r T e s t e / /P a s s w o r dp a s s T e s t e( C u i d a d oc o mm a i s c u l a sem i n s c u l a s

m y s q l _ c o n n e c t ( " $ h o s t n a m e " ," $ u s e r n a m e " ," $ p a s s w o r d " )o rd i e ( m y s q l _ e r r o r ( ) ) ; e c h o" C o n e x oe f e c t u a d ac o ms u c e s s o ! < b r / > " ; m y s q l _ s e l e c t _ d b ( " t e s t e " )o rd i e ( m y s q l _ e r r o r ( ) ) ; e c h o" B a s ed ed a d o ss e l e c c i o n a d a ! < b r / > " ;

? >

Como se pode verificar, usando a funo interna do PHP mysql_connect() estabelecemos uma ligao ao servidor MySQL. Com a varivel or die no caso da mesma falhar. De seguida escolhemos a base de dados a trabalhar com a funo mysql_select_db() Se estiver tudo criado e corrermos o script o resultado ser algo parecido a:

Conexo efectuada com sucesso! Base de dados seleccionada!

FECHAR A CONEXO
Antes de continuarmos, queria falar j no oposto a esta operao. Isto fechar a ligao. Por motivos de segurana poder ser necessrio fechar a conexo base de dados. Contudo desde o PHP4 que no necessrio fecharmos conexes base de dados, porque o PHP efectua uma operao automtica chamada de garbage collector ainda assim a funo interna do PHP mysql_close()

OBTER DADOS DA BASE DE DADOS:


Agora passamos a algo mais interessante deste processo. Ver coisas a acontecer. Neste caso vamos obter informao retida na tabela. Basicamente vamos trabalhar com o PHP para enviar comandos SQL ao servidor MySQL. Vamos comear com o comando para obter TODA a informao da tabela "utilizadores" da nossa base de dados "teste" onde o comando aplicvel :

SELECT * FROM users;


Portanto querendo obter toda a informao com o seguinte comando, precisamos de a armazenar. Vamos efectuar esta operao com a funo PHP mysql_query(), que uma funo para executar comandos SQL, e neste caso da seguinte forma: 1 2 3 4 5 6 7 8 9 1 0 1 1 < ? p h p $ h o s t n a m e=" l o c a l h o s t " ; / /V a m o sc o n s i d e r a rl o c a l h o s to um q u i n al o c a l $ u s e r n a m e=" u s e r T e s t e " ; / /U s e r n a m eu s e r T e s t e $ p a s s w o r d=" p a s s T e s t e " / /P a s s w o r dp a s s T e s t e( C u i d a d oc o mm a i s c u l a sem i n s c u l a s m y s q l _ c o n n e c t ( " $ h o s t n a m e " ," $ u s e r n a m e " ," $ p a s s w o r d " )o rd i e ( m y s q l _ e r r o r ( ) ) ; m y s q l _ s e l e c t _ d b ( " t e s t e " )o rd i e ( m y s q l _ e r r o r ( ) ) ; $ r e s u l t=m y s q l _ q u e r y ( " S E L E C T*F R O Mu t i l i z a d o r e s " ) ; e c h o$ r e s u l t ;

? >

Pois muito bem, at aqui tudo muito simples, e temos todo o contedo numa varivel $result mas esta varivel ficou de facto automaticamente numa array() porque foi adicionado um conjunto de dados. Se tentarmos imprimir o contedo da varivel para o ecr com um echo como mostra o cdigo em cima, o resultado ser algo parecido a isto:

Resource id #3
www.voindo.eu/2010/06/01/tutorial-completo-mysql-com-php/ 2/6

21/11/13

Tutorial completo MySQL com PHP | voindo.eu | Eduardo Pereira | Web Design | Develop

E isto no de facto o que queremos como resultado. Para vermos o resultado precisamos de elaborar o cdigo um pouco mais. Existem funes internas do PHP para mostrar coleces de dados (ARRAYS). Alguns casos: mysql_fetch_assoc() - Obtm um linha de resultados como uma array associativa (pelo nome) mysql_fetch_row() - Obtm uma linha de resultado como uma array numerada (numeradas) mysql_fetch_array() - Obtm uma linha de resultado como uma array associativa, numerada ou ambas Todas estas funes convertem uma clula de informao da tabela para uma posio num ARRAY para que depois possamos utilizar a informao guardada na varivel ARRAY como quisermos. No prximo exemplo vamos usar associativa: 1 2 3 4 < ? p h p ? >

$ r o w=m y s q l _ f e t c h _ a s s o c ( $ r e s u l t ) ; e c h o" I D :" . $ r o w [ ' i d ' ] . " ,N o m e : " . $ r o w [ ' n o m e ' ] . " ,C i d a d e : " . $ r o w [ ' c i d a d e '

Contudo, isto mostra apenas uma linha da tabela. Isto porque lembrem-se que todas as funes internas do PHP para obteno de informao da base de dados relativa a uma linha portanto como ns queremos obter toda a informao na tabela temos de usar um ciclo WHILE LOOP para armazenar todas as linhas da tabela. Assim sendo: 1 2 3 4 5 6 7 < ? p h p $ r e s u l t=m y s q l _ q u e r y ( " S E L E C T*F R O Mu t i l i z a d o r e s " ) ; w h i l e ( $ r o w=m y s q l _ f e t c h _ a s s o c ( $ r e s u l t ) ) { e c h o" I D :" . $ r o w [ ' i d ' ] . " ,N o m e : " . $ r o w [ ' n o m e ' ] . " ,C i d a d e : " . $ r o w }

? >

Como se pode verificar no complicado, ao efectuar um ciclo WHILE que percorre em loop at no haver mais linhas na tabela, e em cada ciclo faz o output da informao com ECHO

INSERIR, ACTUALIZAR E REMOVER DADOS DA TABELA


Estes prximos passos so de maior importncia, contudo sempre com expresses simples e de fcil entendimento. Inserir dados na tabela Para inserir novos dados na tabela usamos comandos SQP muito parecidos com o select como no exemplo anterior para seleccionar informao. Inclusive o comando de insert igualmente usado com a funo mysql_query(). Portanto vamos fazer um exemplo de como adicionar novo utilizador nossa tabela, em que o comando SQL seria:

INSERT INTO utilizadores(nome,cidade,web,idade) VALUES ('Antonio','Aveiro','www.antonio.com',44);


Portanto para executarmos este comando com a funo mysql_query() fazes o seguinte: 1 2 3 4 < ? p h p $ c o m a n d o _ s q l=" I N S E R TI N T Ou t i l i z a d o r e s ( n o m e , c i d a d e , w e b , i d a d e )V A L U E S( ' A n t o n i o ' , ' A v e i r o ' , ' w w w . a n t o n i o . c o m ' , 4 4 ) " $ r e s u l t=m y s q l _ q u e r y ( $ c o m a n d o _ s q l ) ; ? >

Neste caso ento adicionado tabela "utilizadores" uma nova entrada (linha) com os dados referidos. Actualizar uma entrada (Linha) na tabela: Bsicamente igual, as nicas alteraes no comando SQL, portanto: 1 2 3 4 < ? p h p $ s q l=" U P D A T Eu t i l i z a d o r e sS E Ti d a d e = 4 5W H E R En o m e = ' A n t o n i o ' " ; $ r e s u l t=m y s q l _ q u e r y ( $ s q l ) ; ? >

Nesta actualizao usamos o comando UPDATE e dizemos com SET que a idade neste caso 45 na tabela onde o nome igual a Antonio (WHERE nome='Antonio').

www.voindo.eu/2010/06/01/tutorial-completo-mysql-com-php/

3/6

21/11/13
Remover uma entrada:

Tutorial completo MySQL com PHP | voindo.eu | Eduardo Pereira | Web Design | Develop

Outra vez praticamente igual, mudamos o comando SQL para: 1 2 3 4 < ? p h p $ s q l=" D E L E T EF R O Mu t i l i z a d o r e sW H E R En o m e = ' A n t o n i o ' " ; $ r e s u l t=m y s q l _ q u e r y ( $ s q l ) ; ? >

E aqui est, remover a linha onde o nome igual a antonio.

AQUI FICA O SCRIPT COMPLETO COM TODOS OS PASSOS E COMANDOS, NUM S FICHEIRO
1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 3 1 3 2 3 3 3 4 3 5 3 6 3 7 3 8 3 9 4 0 4 1 4 2 4 3 4 4 4 5 4 6 4 7 4 8 4 9 5 0 5 1 5 2 5 3 5 4 5 5 5 6 5 7 5 8 5 9 6 0 6 1 6 2 6 3 6 4 6 5 6 6 6 7 6 8 6 9 < ? p h p $ h o s t n a m e=" l o c a l h o s t " ; $ u s e r n a m e=" u s e r T e s t e " ; $ p a s s w o r d=" p a s s T e s t e " / /V a m o sc o n s i d e r a rl o c a l h o s to um q u i n al o c a l / /U s e r n a m eu s e r T e s t e / /P a s s w o r dp a s s T e s t e( C u i d a d oc o mm a i s c u l a sem i n s c u l a s

m y s q l _ c o n n e c t ( " $ h o s t n a m e " ," $ u s e r n a m e " ," $ p a s s w o r d " )o rd i e ( m y s q l _ e r r o r ( ) ) ; m y s q l _ s e l e c t _ d b ( " t e s t e " )o rd i e ( m y s q l _ e r r o r ( ) ) ;

e c h o" < b r / > P a s s o1 .I n s e r i rd a t a < b r / > < h r / > " ; $ s q l=" I N S E R TI N T Ou t i l i z a d o r e s( n o m e , c i d a d e , w e b , i d a d e )V A L U E S( ' A n t o n i o ' , ' A v e i r o ' , ' w w w . a n t o n i o . c o m ' , 5 ) " $ r e s u l t=m y s q l _ q u e r y ( $ s q l ) ; i f( $ r e s u l t ) {/ /v e r i f i c as eor e s u l t a d op o s i t i v o ,p o r t a n t os eoc o m a n d of o ie x e c u t a d o ; e c h o" D a d o si n s e r i d o s ! < b r / > " ; }e l s e{ e c h o" O c u r r e uu me r r oa oi n s e r i r ! < b r / > " ; } $ r e s u l t=m y s q l _ q u e r y ( " S E L E C T*F R O Mu t i l i z a d o r e s " ) ; w h i l e ( $ r o w=m y s q l _ f e t c h _ a s s o c ( $ r e s u l t ) ) { e c h o" I D :" . $ r o w [ ' i d ' ] . " ,N o m e : " . $ r o w [ ' n o m e ' ] . " ,C i d a d e : " . $ r o w }

e c h o" < b r / > P a s s o2 .A c t u a l i z a rd a t a < b r / > < h r / > " ; $ s q l=" U P D A T Eu t i l i z a d o r e sS E Ti d a d e = 4 5W H E R En o m e = ' A n t o n i o ' " ; $ r e s u l t=m y s q l _ q u e r y ( $ s q l ) ; i f( $ r e s u l t ) {/ /v e r i f i c as eor e s u l t a d op o s i t i v o ,p o r t a n t os eoc o m a n d of o ie x e c u t a d o ; e c h o" D a d o sa c t u a l i z a d o s ! < b r / > " ; }e l s e{ e c h o" O c c u r e uu me r r oa oa c t u a l i z a ro sd a d o s ! < b r / > " ; } $ r e s u l t=m y s q l _ q u e r y ( " S E L E C T*F R O Mu t i l i z a d o r e s " ) ; w h i l e ( $ r o w=m y s q l _ f e t c h _ a s s o c ( $ r e s u l t ) ) { e c h o" I D :" . $ r o w [ ' i d ' ] . " ,N o m e : " . $ r o w [ ' n o m e ' ] . " ,C i d a d e : " . $ r o w }

e c h o" < b r / > P a s s o3 .R e m o v e rd a t a < h r / > " ; $ s q l=" D E L E T EF R O Mu t i l i z a d o r e sW H E R En o m e = ' A n t o n i o ' " ; $ r e s u l t=m y s q l _ q u e r y ( $ s q l ) ; i f( $ r e s u l t ) {/ /v e r i f i c as eor e s u l t a d op o s i t i v o ,p o r t a n t os eoc o m a n d of o ie x e c u t a d o ; e c h o" D a d o sf o r a mr e m o v i d o s ! < b r / > " ; }e l s e{ e c h o" O c u r r e uu me r r oa or e m o v e ro sd a d o s ! < b r / > " ; } $ r e s u l t=m y s q l _ q u e r y ( " S E L E C T*F R O Mu t i l i z a d o r e s " ) ; w h i l e ( $ r o w=m y s q l _ f e t c h _ a s s o c ( $ r e s u l t ) ) { e c h o" I D :" . $ r o w [ ' i d ' ] . " ,N o m e : " . $ r o w [ ' n o m e ' ] . " ,C i d a d e : " . $ r o w }

? >

Espero que este tutorial tenha sido de interesse. Mais tarde falarei em pormenor sobre alguns dos passos aqui. Obrigado e abraos

www.voindo.eu/2010/06/01/tutorial-completo-mysql-com-php/

4/6

21/11/13

Tutorial completo MySQL com PHP | voindo.eu | Eduardo Pereira | Web Design | Develop

12

6 COMENTRIOS
YOYO SAYS:
hihi estudem
22 DE SETEMBRO DE 2013 @ 2:44

REPLY

EDIKOSTON SAYS:
sim foi muito bom! parabns....

16 DE JULHO DE 2013 @ 20:36

REPLY

TIAGO SAYS:
Muito bom o tutorial, obrigado!

1 DE JUNHO DE 2013 @ 22:21

REPLY

ARTUR SAYS:
tutorial excelente, super bem explicado!!!!

1 DE FEVEREIRO DE 2013 @ 3:10

REPLY

CLAUDIO EDUARDO CLEU SAYS:

17 DE DEZEMBRO DE 2012 @ 9:10

gostei do tutorial e estou muito grato pela vossa publicao. obrigado .

REPLY

ROBSON SAYS:
Abrao!.

2 DE SETEMBRO DE 2012 @ 16:13

Bem explicativo o tutorial e bem simples tambem... Valeu por compartilhar.

REPLY

DEIXE UM COMENTRIO
* Nome

www.voindo.eu/2010/06/01/tutorial-completo-mysql-com-php/

5/6

21/11/13

Tutorial completo MySQL com PHP | voindo.eu | Eduardo Pereira | Web Design | Develop

* Endereo de email (no publicado)

Website

* Mensagem

SUBMIT COMMENT

www.voindo.eu/2010/06/01/tutorial-completo-mysql-com-php/

6/6

Das könnte Ihnen auch gefallen