SlideShare uma empresa Scribd logo
1 de 17
Baixar para ler offline
PHP + MySQL: Introdução
Carlos Santos
LabMM 4 - NTC - DeCA - UA
Aula 16, 30-04-2013
objetivos do módulo
Criar sítios Web dinâmicos com informação armazenada em bases de
dados
• parte 1: visualização e navegação de informação armazenada em BD
• visualizar dados de uma tabela
• visualizar dados de várias tabelas ligadas entre si
• visualizar detalhes de informação específica
• parte 2: gestão da informação em BD
• inserir novos dados
• atualizar dados
• apagar dados
• parte 3: outras tecnologias interessantes para projetos finais
• Encriptação, SVN, MVC, Ajax, APIs, JSON,...
novidade do ano letivo anterior...
... sem rede de segurança :)
etapas
1. estabelecer ligação com o MySQL
2. escolher a BD
3. extrair dados da BD através de uma query -> recordset
4. preparar dados para trabalhar no PHP -> fetch
5. mostrar dados
6. fechar ligação ao MySQL
1. estabelecer ligação ao MySQL
mysql_connect()
• abre uma ligação não persistente ao servidor
• existe apenas no âmbito da página/script que a usa
• deve ser terminada pela função mysql_close()
mysql_pconnect()
• abre uma ligação persistente ao servidor
depois de aberta, esta será mantida para todas as páginas
gestão destas ligações persistentes é feita através da configuração de
parâmetros no próprio servidor MySQL
• wait_timeout
• max_connect_errors
1. estabelecer ligação ao MySQL
$connection = mysql_connect(hostname, username, password);
Boas práticas
• criar uma pasta “connections”
• criar um ficheiro “connection.php” com:
<?php
$hostname = “localhost";
$username = “nome_utilizador";
$password = “password_utilizador";
$connection = mysql_connect($hostname, $username, $password);
?>
• incluir o ficheiro em todas as páginas que precisem de interagir com a BD
require_once('connections/connection.php');
1. estabelecer ligação ao MySQL
E se a ligação der erro?
$connection = mysql_connect(hostname, username, password)
or trigger_error(mysql_error(), E_USER_ERROR);
• trigger_error() - dispara uma configuração de erro cujo comportamento
pode ser controlado com set_error_handler()
• mysql_error() - texto do último erro gerado pela última função do MySQL
• E_USER_ERROR - “User-generated error message”
$connection = mysql_connect(hostname, username, password)
|| die(‘Erro na ligação à base de dados’);
• este método só deve ser utilizado para debug em desenvolvimento porque
não permite um controlo dos erros enviados para o utilizador!
2. escolher a BD
mysql_select_db(dbname);
Incluir em “connection.php”
<?php
$hostname = “localhost";
$username = “nome_utilizador";
$password = “password_utilizador";
$dbname = “nome_basededados”;
$connection = mysql_connect($hostname, $username, $password)
or trigger_error(mysql_error(), E_USER_ERROR);
mysql_select_db($dbname);
?>
3. extrair dados da BD a partir de uma query
$query = "SELECT colunas FROM tabela";
$rsName = mysql_query($query , $connection);
• $query só pode conter uma query e sem “;” no final. Não há suporte para
múltiplos queries numa única chamada!
• $rsName é uma variável do tipo “resource” que contem todos os valores
resultantes da execução do query na respectiva base de dados
• retorna FALSE se existiu um erro na execução do query
Para saber o número total de registos do resultado
• $totalrows_rsName = mysql_num_rows($rsName);
Para libertar espaço de memória ocupado (pouco utilizado)
• mysql_free_result($rsName);
Um recordset é uma estrutura de dados sem índices
• o acesso é realizado ao elemento apontado pelo ponteiro
• os métodos de fetch fazem avançar o ponteiro para a próxima “linha”
3. recordset
4. preparar dados para trabalhar no PHP -> fetch
Para utilizar a informação do recordset é necessário preparar (ir buscar)
os dados através de um processo designado por fetch
O fetch dos resultados é realizado linha a linha!
Vários métodos disponíveis dependendo do modo como se prefere tratar
os dados nos passos seguintes:
• mysql_fetch_assoc(recorset) - “Fetch a result row as an associative
array”
• mysql_fetch_row(recordset) - “Get a result row as an enumerated array”
• mysql_fetch_array(recordset) - “Fetch a result row as an associative
array, a numeric array, or both”
4. preparar dados para trabalhar no PHP -> fetch
$row_rsName = mysql_fetch_assoc($rsName);
echo $row_rsName[“chave1"];
echo $row_rsName[“chaveN"];
• $row_rsName é um array associativo
• o acesso aos valores é realizado através das chaves do array
• as chaves são iguais aos nomes dos campos retornados pela query
• retorna FALSE se já não existirem dados para fetch
Para listar todos os resultados
while ($row_rsName = mysql_fetch_assoc($rsName)){
echo $row_rsName[“campo1"];
echo $row_rsName[“campoN"];
}
4. preparar dados para trabalhar no PHP -> fetch
$row_rsName = mysql_fetch_row($rsName);
echo $row_rsName[0];
echo $row_rsName[N];
• $row_rsName é um array enumerado
• o acesso aos valores é realizado através dos índices
• retorna FALSE se já não existirem dados para fetch
Para listar todos os resultados
while ($row_rsName = mysql_fetch_row($rsName)){
echo $row_rsName[0];
echo $row_rsName[N];
}
5. mostrar dados
Já foi exemplificados nos slides do ponto 4 :)
É necessário aplicar os conhecimentos adquiridos no módulo anterior.
Trata-se de utilizar o PHP para tratar os dados dos arrays e mostrar a
informação na página.
6. fechar ligação ao MySQL
mysql_close($connection);
Boas práticas
• o PHP fecha a ligação automaticamente quando o script é terminado
• no entanto, é considerada uma boa prática incluir o método para fechar a
ligação
• a não utilização deste método é crítica quando existem scripts muito
pesados, com longos tempos de processamento, que deixam as ligações
“penduradas” durante muito tempo
• um servidor de MySQL tem recursos limitados e não aguenta um número
infinito de ligações em simultâneo!
No final...
// Ficheiro “connections/connection.php”
<?php
// Define variáveis
$hostname = “localhost";
$username = “nome_utilizador";
$password = “password_utilizador";
$dbname = “nome_basededados”;
// Estabelece ligação ao MySQL
$connection = mysql_connect($hostname, $username,
$password) or trigger_error(mysql_error(), E_USER_ERROR);
// Estabelece ligação à BD
mysql_select_db($dbname);
mysql_set_charset(‘utf8’, $connection);
?>
No final...
<?php
// Ligação à BD
require_once('connections/connection.php');
// Extrair dados da BD
$query = "SELECT colunas FROM tabela";
$rsName = mysql_query($query , $connection);
// Mostrar dados
while ($row_rsName = mysql_fetch_assoc($rsName)){
echo $row_rsName[“campo1"];
echo $row_rsName[“campoN"];
}
// Fechar ligação à BD
mysql_close($connection);
?>

Mais conteúdo relacionado

Mais procurados

Acesso a Banco de Dados em Java usando JDBC
Acesso a Banco de Dados em Java usando JDBCAcesso a Banco de Dados em Java usando JDBC
Acesso a Banco de Dados em Java usando JDBCLuiz Ricardo Silva
 
Aula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites IIAula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites IIinfo_cimol
 
PHPubSP Object Calisthenics aplicado ao PHP
PHPubSP Object Calisthenics aplicado ao PHPPHPubSP Object Calisthenics aplicado ao PHP
PHPubSP Object Calisthenics aplicado ao PHPGuilherme Blanco
 
Introdução ao Respect\Validation (1.0)
Introdução ao Respect\Validation (1.0)Introdução ao Respect\Validation (1.0)
Introdução ao Respect\Validation (1.0)Henrique Moody
 
Acesso a banco de dados com JDBC
Acesso a banco de dados com JDBCAcesso a banco de dados com JDBC
Acesso a banco de dados com JDBCEduardo Mendes
 
Manipulando Bancos de Dados com JDBC
Manipulando Bancos de Dados com JDBCManipulando Bancos de Dados com JDBC
Manipulando Bancos de Dados com JDBCAntonio Passos
 
Banco de dadados MySQL com PHP
Banco de dadados MySQL com PHPBanco de dadados MySQL com PHP
Banco de dadados MySQL com PHPLeonardo Soares
 
PHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PHP e PostgreSQL: Um é pouco, dois é bom, três é demaisPHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PHP e PostgreSQL: Um é pouco, dois é bom, três é demaisFabrízio Mello
 
PHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object CalisthenicsPHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object CalisthenicsGuilherme Blanco
 
Aula 02 PHP+MySQL - LabMM4
Aula 02 PHP+MySQL - LabMM4 Aula 02 PHP+MySQL - LabMM4
Aula 02 PHP+MySQL - LabMM4 Carlos Santos
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesOtávio Calaça Xavier
 
Jdbc, JAVA DATABASE CONNECTIVITY
Jdbc, JAVA DATABASE CONNECTIVITYJdbc, JAVA DATABASE CONNECTIVITY
Jdbc, JAVA DATABASE CONNECTIVITYraquelcarsi
 

Mais procurados (20)

Minicurso mongo db
Minicurso mongo dbMinicurso mongo db
Minicurso mongo db
 
Acesso a Banco de Dados em Java usando JDBC
Acesso a Banco de Dados em Java usando JDBCAcesso a Banco de Dados em Java usando JDBC
Acesso a Banco de Dados em Java usando JDBC
 
Aula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites IIAula 5 PHP - Criação de sites II
Aula 5 PHP - Criação de sites II
 
PHPubSP Object Calisthenics aplicado ao PHP
PHPubSP Object Calisthenics aplicado ao PHPPHPubSP Object Calisthenics aplicado ao PHP
PHPubSP Object Calisthenics aplicado ao PHP
 
Introdução ao Respect\Validation (1.0)
Introdução ao Respect\Validation (1.0)Introdução ao Respect\Validation (1.0)
Introdução ao Respect\Validation (1.0)
 
Acesso a banco de dados com JDBC
Acesso a banco de dados com JDBCAcesso a banco de dados com JDBC
Acesso a banco de dados com JDBC
 
Aula 8 php
Aula 8 phpAula 8 php
Aula 8 php
 
Manipulando Bancos de Dados com JDBC
Manipulando Bancos de Dados com JDBCManipulando Bancos de Dados com JDBC
Manipulando Bancos de Dados com JDBC
 
Pdo do PHP Palestra
Pdo do PHP PalestraPdo do PHP Palestra
Pdo do PHP Palestra
 
Banco de dadados MySQL com PHP
Banco de dadados MySQL com PHPBanco de dadados MySQL com PHP
Banco de dadados MySQL com PHP
 
JDBC
JDBCJDBC
JDBC
 
PHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PHP e PostgreSQL: Um é pouco, dois é bom, três é demaisPHP e PostgreSQL: Um é pouco, dois é bom, três é demais
PHP e PostgreSQL: Um é pouco, dois é bom, três é demais
 
PHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object CalisthenicsPHP para Adultos: Clean Code e Object Calisthenics
PHP para Adultos: Clean Code e Object Calisthenics
 
Implementação de
Implementação de Implementação de
Implementação de
 
Aula 02 PHP+MySQL - LabMM4
Aula 02 PHP+MySQL - LabMM4 Aula 02 PHP+MySQL - LabMM4
Aula 02 PHP+MySQL - LabMM4
 
Fundamentos de JDBC
Fundamentos de JDBCFundamentos de JDBC
Fundamentos de JDBC
 
Java 16 Jdbc
Java 16 JdbcJava 16 Jdbc
Java 16 Jdbc
 
Object Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simplesObject Calisthenics: relaxe e escreva códigos simples
Object Calisthenics: relaxe e escreva códigos simples
 
Jdbc, JAVA DATABASE CONNECTIVITY
Jdbc, JAVA DATABASE CONNECTIVITYJdbc, JAVA DATABASE CONNECTIVITY
Jdbc, JAVA DATABASE CONNECTIVITY
 
PHP MySQL Aula 03
PHP MySQL Aula 03PHP MySQL Aula 03
PHP MySQL Aula 03
 

Destaque

CakePHP + Adobe Flex®, v2
CakePHP + Adobe Flex®, v2CakePHP + Adobe Flex®, v2
CakePHP + Adobe Flex®, v2Cauan Cabral
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Vinícius de Paula
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Lucas Augusto Carvalho
 
Minicurso de Cakephp
Minicurso de CakephpMinicurso de Cakephp
Minicurso de CakephpCauan Cabral
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldabaux singapore
 

Destaque (7)

CakePHP + Adobe Flex®, v2
CakePHP + Adobe Flex®, v2CakePHP + Adobe Flex®, v2
CakePHP + Adobe Flex®, v2
 
Filtro de SPAM
Filtro de SPAMFiltro de SPAM
Filtro de SPAM
 
PHP + Flex
PHP + FlexPHP + Flex
PHP + Flex
 
Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.Desenvolvimento Web com Simfony Framework.
Desenvolvimento Web com Simfony Framework.
 
Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5Palestra - Symfony Framework MVC PHP 5
Palestra - Symfony Framework MVC PHP 5
 
Minicurso de Cakephp
Minicurso de CakephpMinicurso de Cakephp
Minicurso de Cakephp
 
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika AldabaLightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
Lightning Talk #9: How UX and Data Storytelling Can Shape Policy by Mika Aldaba
 

Semelhante a PHP + MySQL Introdução

PHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosPHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosDaniel Brandão
 
Aula 12 Relatório - Tabelas
Aula 12   Relatório - TabelasAula 12   Relatório - Tabelas
Aula 12 Relatório - TabelasDalton Martins
 
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
Dsi   015 - poo e php - conexão com bancos de dados usando pdoDsi   015 - poo e php - conexão com bancos de dados usando pdo
Dsi 015 - poo e php - conexão com bancos de dados usando pdoJorge Luís Gregório
 
LabMM4 (T22 - 12/13) - segurança
LabMM4 (T22 - 12/13) - segurançaLabMM4 (T22 - 12/13) - segurança
LabMM4 (T22 - 12/13) - segurançaCarlos Santos
 
Sistema de Login php.pptx
Sistema de Login php.pptxSistema de Login php.pptx
Sistema de Login php.pptxJosivaldoFrana1
 
Aula 08 - Introdução ao banco de dados MySQL - Programação Web
Aula 08 - Introdução ao banco de dados MySQL - Programação WebAula 08 - Introdução ao banco de dados MySQL - Programação Web
Aula 08 - Introdução ao banco de dados MySQL - Programação WebDalton Martins
 
LabMM4 (T17 - 12/13)
LabMM4 (T17 - 12/13)LabMM4 (T17 - 12/13)
LabMM4 (T17 - 12/13)Carlos Santos
 
Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01julianabdpaiva
 
Aula 9 php (banco de dados)
Aula 9   php (banco de dados)Aula 9   php (banco de dados)
Aula 9 php (banco de dados)andreluizlc
 
PDO: TRABALHANDO COM BANCO DO JEITO CERTO
PDO: TRABALHANDO COM BANCO DO JEITO CERTOPDO: TRABALHANDO COM BANCO DO JEITO CERTO
PDO: TRABALHANDO COM BANCO DO JEITO CERTOPerla Coutinho Barbosa
 
Apresentação formação web - up marketing digital - módulo ii - 2º fds
Apresentação   formação web - up marketing digital - módulo ii - 2º fdsApresentação   formação web - up marketing digital - módulo ii - 2º fds
Apresentação formação web - up marketing digital - módulo ii - 2º fdsRangel Javier
 
Aula 09 - Instruções preparadas e otimização de consultas do Mysql - Program...
Aula 09  - Instruções preparadas e otimização de consultas do Mysql - Program...Aula 09  - Instruções preparadas e otimização de consultas do Mysql - Program...
Aula 09 - Instruções preparadas e otimização de consultas do Mysql - Program...Dalton Martins
 
Persistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPAPersistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPACaelum
 

Semelhante a PHP + MySQL Introdução (20)

PHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de DadosPHP Aula07 - conexão Com Banco de Dados
PHP Aula07 - conexão Com Banco de Dados
 
Aula 12 Relatório - Tabelas
Aula 12   Relatório - TabelasAula 12   Relatório - Tabelas
Aula 12 Relatório - Tabelas
 
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
Dsi   015 - poo e php - conexão com bancos de dados usando pdoDsi   015 - poo e php - conexão com bancos de dados usando pdo
Dsi 015 - poo e php - conexão com bancos de dados usando pdo
 
LabMM4 (T22 - 12/13) - segurança
LabMM4 (T22 - 12/13) - segurançaLabMM4 (T22 - 12/13) - segurança
LabMM4 (T22 - 12/13) - segurança
 
PHP MySQL Aula 07
PHP MySQL Aula 07PHP MySQL Aula 07
PHP MySQL Aula 07
 
Sistema de Login php.pptx
Sistema de Login php.pptxSistema de Login php.pptx
Sistema de Login php.pptx
 
Aula 08 - Introdução ao banco de dados MySQL - Programação Web
Aula 08 - Introdução ao banco de dados MySQL - Programação WebAula 08 - Introdução ao banco de dados MySQL - Programação Web
Aula 08 - Introdução ao banco de dados MySQL - Programação Web
 
LabMM4 (T17 - 12/13)
LabMM4 (T17 - 12/13)LabMM4 (T17 - 12/13)
LabMM4 (T17 - 12/13)
 
Acessando o MySql com o Python
Acessando o MySql com o PythonAcessando o MySql com o Python
Acessando o MySql com o Python
 
Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01Livropythonmysql 091022073751-phpapp01
Livropythonmysql 091022073751-phpapp01
 
Aula 9 php (banco de dados)
Aula 9   php (banco de dados)Aula 9   php (banco de dados)
Aula 9 php (banco de dados)
 
PDO: TRABALHANDO COM BANCO DO JEITO CERTO
PDO: TRABALHANDO COM BANCO DO JEITO CERTOPDO: TRABALHANDO COM BANCO DO JEITO CERTO
PDO: TRABALHANDO COM BANCO DO JEITO CERTO
 
Apresentação formação web - up marketing digital - módulo ii - 2º fds
Apresentação   formação web - up marketing digital - módulo ii - 2º fdsApresentação   formação web - up marketing digital - módulo ii - 2º fds
Apresentação formação web - up marketing digital - módulo ii - 2º fds
 
Crud
CrudCrud
Crud
 
Aula 09 - Instruções preparadas e otimização de consultas do Mysql - Program...
Aula 09  - Instruções preparadas e otimização de consultas do Mysql - Program...Aula 09  - Instruções preparadas e otimização de consultas do Mysql - Program...
Aula 09 - Instruções preparadas e otimização de consultas do Mysql - Program...
 
Persistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPAPersistência Java: Hibernate e JPA
Persistência Java: Hibernate e JPA
 
MongoDB + PHP
MongoDB + PHPMongoDB + PHP
MongoDB + PHP
 
Doctrine for dummies
Doctrine for dummiesDoctrine for dummies
Doctrine for dummies
 
PHP e Mysql - INSERT
PHP e Mysql - INSERTPHP e Mysql - INSERT
PHP e Mysql - INSERT
 
PHP e Mysql - INSERT
PHP e Mysql - INSERTPHP e Mysql - INSERT
PHP e Mysql - INSERT
 

Mais de Carlos Santos

Is AI the Spice of our future?
Is AI the Spice of our future?Is AI the Spice of our future?
Is AI the Spice of our future?Carlos Santos
 
Mentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesMentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesCarlos Santos
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEduCarlos Santos
 
Tecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialTecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialCarlos Santos
 
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosAVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosCarlos Santos
 
AVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosAVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosCarlos Santos
 
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Carlos Santos
 
Tecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoTecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoCarlos Santos
 
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Carlos Santos
 
SAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentSAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentCarlos Santos
 
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusRepensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusCarlos Santos
 
A technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectA technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectCarlos Santos
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoCarlos Santos
 
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCARepensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCACarlos Santos
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidCarlos Santos
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoCarlos Santos
 
T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)Carlos Santos
 

Mais de Carlos Santos (20)

Is AI the Spice of our future?
Is AI the Spice of our future?Is AI the Spice of our future?
Is AI the Spice of our future?
 
Mentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesMentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantes
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEdu
 
Tecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialTecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicial
 
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosAVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
 
AVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosAVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunos
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
 
Tecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoTecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho prático
 
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
SAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentSAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning Environment
 
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusRepensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
 
A technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectA technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus project
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativo
 
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCARepensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e Scoreoid
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificação
 
T18_LM3: Ajax
T18_LM3: AjaxT18_LM3: Ajax
T18_LM3: Ajax
 
T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)
 

Último

About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdfLeloIurk1
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfWagnerCamposCEA
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFtimaMoreira35
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...licinioBorges
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?AnabelaGuerreiro7
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOFASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOAulasgravadas3
 

Último (20)

About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
5 bloco 7 ano - Ensino Relogioso- Lideres Religiosos _ Passei Direto.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdfReta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
Reta Final - CNU - Gestão Governamental - Prof. Stefan Fantini.pdf
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
Bullying, sai pra lá
Bullying,  sai pra láBullying,  sai pra lá
Bullying, sai pra lá
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdf
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?Urso Castanho, Urso Castanho, o que vês aqui?
Urso Castanho, Urso Castanho, o que vês aqui?
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃOFASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
FASE 1 MÉTODO LUMA E PONTO. TUDO SOBRE REDAÇÃO
 

PHP + MySQL Introdução

  • 1. PHP + MySQL: Introdução Carlos Santos LabMM 4 - NTC - DeCA - UA Aula 16, 30-04-2013
  • 2. objetivos do módulo Criar sítios Web dinâmicos com informação armazenada em bases de dados • parte 1: visualização e navegação de informação armazenada em BD • visualizar dados de uma tabela • visualizar dados de várias tabelas ligadas entre si • visualizar detalhes de informação específica • parte 2: gestão da informação em BD • inserir novos dados • atualizar dados • apagar dados • parte 3: outras tecnologias interessantes para projetos finais • Encriptação, SVN, MVC, Ajax, APIs, JSON,...
  • 3. novidade do ano letivo anterior... ... sem rede de segurança :)
  • 4. etapas 1. estabelecer ligação com o MySQL 2. escolher a BD 3. extrair dados da BD através de uma query -> recordset 4. preparar dados para trabalhar no PHP -> fetch 5. mostrar dados 6. fechar ligação ao MySQL
  • 5. 1. estabelecer ligação ao MySQL mysql_connect() • abre uma ligação não persistente ao servidor • existe apenas no âmbito da página/script que a usa • deve ser terminada pela função mysql_close() mysql_pconnect() • abre uma ligação persistente ao servidor depois de aberta, esta será mantida para todas as páginas gestão destas ligações persistentes é feita através da configuração de parâmetros no próprio servidor MySQL • wait_timeout • max_connect_errors
  • 6. 1. estabelecer ligação ao MySQL $connection = mysql_connect(hostname, username, password); Boas práticas • criar uma pasta “connections” • criar um ficheiro “connection.php” com: <?php $hostname = “localhost"; $username = “nome_utilizador"; $password = “password_utilizador"; $connection = mysql_connect($hostname, $username, $password); ?> • incluir o ficheiro em todas as páginas que precisem de interagir com a BD require_once('connections/connection.php');
  • 7. 1. estabelecer ligação ao MySQL E se a ligação der erro? $connection = mysql_connect(hostname, username, password) or trigger_error(mysql_error(), E_USER_ERROR); • trigger_error() - dispara uma configuração de erro cujo comportamento pode ser controlado com set_error_handler() • mysql_error() - texto do último erro gerado pela última função do MySQL • E_USER_ERROR - “User-generated error message” $connection = mysql_connect(hostname, username, password) || die(‘Erro na ligação à base de dados’); • este método só deve ser utilizado para debug em desenvolvimento porque não permite um controlo dos erros enviados para o utilizador!
  • 8. 2. escolher a BD mysql_select_db(dbname); Incluir em “connection.php” <?php $hostname = “localhost"; $username = “nome_utilizador"; $password = “password_utilizador"; $dbname = “nome_basededados”; $connection = mysql_connect($hostname, $username, $password) or trigger_error(mysql_error(), E_USER_ERROR); mysql_select_db($dbname); ?>
  • 9. 3. extrair dados da BD a partir de uma query $query = "SELECT colunas FROM tabela"; $rsName = mysql_query($query , $connection); • $query só pode conter uma query e sem “;” no final. Não há suporte para múltiplos queries numa única chamada! • $rsName é uma variável do tipo “resource” que contem todos os valores resultantes da execução do query na respectiva base de dados • retorna FALSE se existiu um erro na execução do query Para saber o número total de registos do resultado • $totalrows_rsName = mysql_num_rows($rsName); Para libertar espaço de memória ocupado (pouco utilizado) • mysql_free_result($rsName);
  • 10. Um recordset é uma estrutura de dados sem índices • o acesso é realizado ao elemento apontado pelo ponteiro • os métodos de fetch fazem avançar o ponteiro para a próxima “linha” 3. recordset
  • 11. 4. preparar dados para trabalhar no PHP -> fetch Para utilizar a informação do recordset é necessário preparar (ir buscar) os dados através de um processo designado por fetch O fetch dos resultados é realizado linha a linha! Vários métodos disponíveis dependendo do modo como se prefere tratar os dados nos passos seguintes: • mysql_fetch_assoc(recorset) - “Fetch a result row as an associative array” • mysql_fetch_row(recordset) - “Get a result row as an enumerated array” • mysql_fetch_array(recordset) - “Fetch a result row as an associative array, a numeric array, or both”
  • 12. 4. preparar dados para trabalhar no PHP -> fetch $row_rsName = mysql_fetch_assoc($rsName); echo $row_rsName[“chave1"]; echo $row_rsName[“chaveN"]; • $row_rsName é um array associativo • o acesso aos valores é realizado através das chaves do array • as chaves são iguais aos nomes dos campos retornados pela query • retorna FALSE se já não existirem dados para fetch Para listar todos os resultados while ($row_rsName = mysql_fetch_assoc($rsName)){ echo $row_rsName[“campo1"]; echo $row_rsName[“campoN"]; }
  • 13. 4. preparar dados para trabalhar no PHP -> fetch $row_rsName = mysql_fetch_row($rsName); echo $row_rsName[0]; echo $row_rsName[N]; • $row_rsName é um array enumerado • o acesso aos valores é realizado através dos índices • retorna FALSE se já não existirem dados para fetch Para listar todos os resultados while ($row_rsName = mysql_fetch_row($rsName)){ echo $row_rsName[0]; echo $row_rsName[N]; }
  • 14. 5. mostrar dados Já foi exemplificados nos slides do ponto 4 :) É necessário aplicar os conhecimentos adquiridos no módulo anterior. Trata-se de utilizar o PHP para tratar os dados dos arrays e mostrar a informação na página.
  • 15. 6. fechar ligação ao MySQL mysql_close($connection); Boas práticas • o PHP fecha a ligação automaticamente quando o script é terminado • no entanto, é considerada uma boa prática incluir o método para fechar a ligação • a não utilização deste método é crítica quando existem scripts muito pesados, com longos tempos de processamento, que deixam as ligações “penduradas” durante muito tempo • um servidor de MySQL tem recursos limitados e não aguenta um número infinito de ligações em simultâneo!
  • 16. No final... // Ficheiro “connections/connection.php” <?php // Define variáveis $hostname = “localhost"; $username = “nome_utilizador"; $password = “password_utilizador"; $dbname = “nome_basededados”; // Estabelece ligação ao MySQL $connection = mysql_connect($hostname, $username, $password) or trigger_error(mysql_error(), E_USER_ERROR); // Estabelece ligação à BD mysql_select_db($dbname); mysql_set_charset(‘utf8’, $connection); ?>
  • 17. No final... <?php // Ligação à BD require_once('connections/connection.php'); // Extrair dados da BD $query = "SELECT colunas FROM tabela"; $rsName = mysql_query($query , $connection); // Mostrar dados while ($row_rsName = mysql_fetch_assoc($rsName)){ echo $row_rsName[“campo1"]; echo $row_rsName[“campoN"]; } // Fechar ligação à BD mysql_close($connection); ?>