July 10, 2016 | Author: Gilson Sales | Category: N/A
Utilizando Php e Mysql
Nasair Júnior da Silva
[email protected] V Seminário de Desenvolvimento em Software Livre
Conteúdo Objetivos O que é SQL/MySql O ambiente MySql A linguagem SQL O que é PHP Utilização da Linguagem Conexão com Banco de Dados Exemplos Exercícios V Seminário de Desenvolvimento em Software Livre
Objetivos do curso Conhecer o PHP Conhecer a linguagem SQL Conhecer as funções de conexão e interação com banco de dados Mysql, utilizando a linguagem PHP Exercitar o uso das funções PHP e linguagem SQL V Seminário de Desenvolvimento em Software Livre
O que é SQL/MySql SQL é um padrão de linguagem a ser utilizado por sistemas de banco de dados, para gerenciamento e armazenamento de dados. MySQL é um servidor de banco de dados SQL multiusuário e permite múltiplos acessos simultâneos. MySQL é uma implementação cliente-servidor. Manipula um simultâneos;
número
ilimitado
de
usuários
Alta velocidade de execução; Trabalha com diferentes plataformas: Unix, Windows etc.; V Seminário de Desenvolvimento em Software Livre
O que é SQL/MySql (2) Disponibiliza diversos tipos de dados: INT , FLOAT, DOUBLE, CHAR, VARCHAR, TEXT, BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, SET e ENUM; Alta velocidade na execução de joins usando multi-join otimizado; Suporte completo a operadores e funções nas cláusulas SELECT e WHERE; Suporte às cláusulas GROUP BY e ORDER BY e a funções de grupo (COUNT(), AVG(), STD(), SUM(), MAX() e MIN()); V Seminário de Desenvolvimento em Software Livre
O que é SQL/MySql (3) Suporte a LEFT OUTER JOIN com a sintaxe ANSI SQL e ODBC; Sistema de privilégios flexível, simples, eficiente e seguro. Tabelas de disco sob a forma B-tree rápidas com compressão de índices; Permite 16 índices por tabela; Escrita em C e C++. Testada com diferentes compiladores; Possui um sistema de alocação de memória extremamente rápido; V Seminário de Desenvolvimento em Software Livre
O que é SQL/MySql (4) DELETE, INSERT, REPLACE e UPDATE devolvem o número de linhas afetadas pelo comando; Nomes de funções não entram em conflito com nomes de tabelas ou colunas; Algumas novas funcionalidades: Gatilhos (triggers) Stored procedures Visões (views) Joins otimizados, ... http://www.mysql.com V Seminário de Desenvolvimento em Software Livre
Histórico do MySql 1979: Unireg: Monty Widelious criou o Unireg, um banco de dados não-SQL para grandes tabelas 1994: Monty iniciou o desenvolvimento de um SGBD baseado no Unireg; API baseado no mSQL, um gerenciado open source (não era muito bom para grandes tabelas) 1996: Mysql 3.11.1 lançado em binário para Linux e Solaris 2005: Mysql 5.0.4
V Seminário de Desenvolvimento em Software Livre
Tipos de dados do MySql CHAR(M): strings de tamanho fixo entre 1 e 255 caracteres VARCHAR(M): strings de tamanho flexível entre 1 e 255 caracteres INT(M): números inteiros entre -2147483648 e 2147483647 FLOAT [(M,D)]: números decimais com D casas decimais DATE: armazena informação relativa a datas. O formato default é 'YYYY-MM-DD' V Seminário de Desenvolvimento em Software Livre
Tipos de dados do MySql(2) TEXT/BLOB: strings entre 255 e 65535 caracteres. A diferença entre TEXT e BLOB é que no primeiro o texto não é sensível ao caso e no segundo sim SET: conjunto de valores strings ENUM: conjunto de valores strings, difere do SET pois só são armazenados valores previamente especificados
V Seminário de Desenvolvimento em Software Livre
Especificação de colunas Primary Key (Chave Primária): usada para diferenciar um registro do outro. Cada registro, desta forma, não pode ter a mesma chave primária Foreign Key (Chave Estrangeira): usada para relacionar uma coluna de uma tabela com a coluna de outra tabela Auto_increment: uma coluna com esta opção é automaticamente incrementada quando da inserção de um registro NOT NULL: não permite a inserção de valores nulos V Seminário de Desenvolvimento em Software Livre
Sistema de Privilégios A tabela host determina quais os hosts que estão habilitados a acessar o servidor MySQL A tabela user determina os usuários que podem acessar o servidor e suas senhas de identificação a partir de um host A tabela db contém as informações relativas a qual banco de dados um usuário de um certo host pode acessar
V Seminário de Desenvolvimento em Software Livre
O Ambiente MySQL Para acessar o ambiente mysql #mysql h host u username p databasename Para criar um banco de dados mysql> create database NomeDoBanco; Para utilizar o banco recém criado: mysql> use NomeDoBanco
V Seminário de Desenvolvimento em Software Livre
Iniciando... Visualizar todos os bancos de dados mysql> show databases; Visualizar as tabelas do banco atual mysql> show tables; Visualizar os campos de uma tabela mysql> show fields from NomeDaTabela; ou: mysql> desc NomeDaTabela; V Seminário de Desenvolvimento em Software Livre
Criando uma tabela Mysql>CREATE TABLE empresas ( codigo integer auto_increment, nome varchar(50), primary key(codigo)) type=innodb;// Mysql>CREATE TABLE pessoas ( codigo integer auto_increment, nome varchar(50), empresa integer, salario real, primary key(codigo), foreign key(empresa) references empresas (codigo)) type=innodb;// V Seminário de Desenvolvimento em Software Livre
Inserindo valores INSERT INTO empresas ( nome) VALUES ('Solis'),('Unisinos'),('Univates'),('Governo FEDERAL');// INSERT INTO pessoas (nome, empresa, salario) VALUES ('Nasair Silva',1,100),('Joice',1,200), ('Daniel',1,300),('Leonardo',2,400), ('Andréa','2',500),('Cesar',3,600), ('Viviane',3,700),('Roberto Jefferson',4,3000), ('Luis Inácio',4,5000);// INSERT INTO pessoas(nome, empresa, salario) VALUES ('Frederico',10,1000); V Seminário de Desenvolvimento em Software Livre
Alterando uma tabela mysql>desc pessoas; mysql>alter table pessoas add data_nascimento date; mysql>alter table pessoas add telefone int; mysql>alter table pessoas drop telefone; mysql>alter table pessoas add telefone varchar (10); mysql>alter table pessoas modify telefone varchar(15); mysql>alter table pessoas change telefone fone varchar(15); V Seminário de Desenvolvimento em Software Livre
Exibindo, Apagando, Alterando mysql>SELECT * FROM pessoas; mysql>DELETE FROM pessoas WHERE codigo=8; mysql>UPDATE pessoas SET salario=6000 WHERE codigo=9; mysql>SELECT nome, salario FROM pessoas; mysql>UPDATE pessoas SET salario = 500 WHERE salario < 500; mysql>DELETE FROM pessoas WHERE salario >5000; mysql>SELECT nome, salario FROM pessoas; V Seminário de Desenvolvimento em Software Livre
Criando usuários mysql> insert into mysql.user (Host, User, Password) values ('localhost', 'aluno', password ('teste123')); mysql> flush privileges; mysql> grant all privileges on curso.* to aluno@localhost identified by 'teste123'; mysql> revoke DELETE on curso.* FROM aluno@localhost; ●
ALTER, CREATE, DELETE, DROP, SELECT, INSERT, UPDATE, V Seminário de Desenvolvimento em Software Livre
Apagando banco e tabela mysql>drop table teste; Query OK, 0 rows affected (0.00 sec) mysql>show tables; mysql>drop database teste; Query OK, 0 rows affected (0.00 sec) mysql>show databases; V Seminário de Desenvolvimento em Software Livre
O que é PHP
oficialmente "PHP: Hypertext Preprocessor" PHP é uma linguagem de script no lado do servidor (server-side) embutida no HTML, portanto é necessário instalar o interpretador da linguagem no servidor de Web. Pode ser utilizada como script local Extensão php-gtk para programação local Site: http://br.php.net V Seminário de Desenvolvimento em Software Livre
O que o PHP pode fazer ? Tudo o que outras linguagens fazem... ●
●
●
●
Coleta dados e gera formulários dinâmicos Conversa de forma nativa com uma ampla variedade de Bancos de Dados Tem acesso a protocolos como IMAP, SNMP, NNTP, POP3, HTTP... Pode ser utilizado em programação local V Seminário de Desenvolvimento em Software Livre
Histórico do PHP Criada em 1994 por Rasmus Lerdorf Em 1995 a primeira versão utilizada por outras pessoas chamada Personal Home Page Tools Ainda em 1995 o interpretador é reescrito e chamado PHP/FI, esta é a versão 2. Em 1997, com um time de desenvolvedores surge a versão 3. Em seguida a versão 4, muito mais rebusta. Versão 5, com várias alterações e melhorias
V Seminário de Desenvolvimento em Software Livre
Primeiros Passos Tags que identificam o PHP codigo; V Seminário de Desenvolvimento em Software Livre
Verificando a instalação
V Seminário de Desenvolvimento em Software Livre
Olá, Mundo echo, print: Ecreve um output na tela echo('Olá Mundo!'); // : Comentário de uma linha // Isto é um comentário /* */ : Bloco de comentário /* Isto é um bloco de comentário */ V Seminário de Desenvolvimento em Software Livre
Exemplo - exemplo1.php Script de exemplo Bem-vindo ao script de exemplo: V Seminário de Desenvolvimento em Software Livre
Variáveis Os tipos de variáveis mais usados são: Caractere: Inteiro:
'a', 'b', 'Z'
0, 1, 2
String: "PHP É legal!" Real/Flutuante:
15.5
Iniciam SEMPRE com o caracter $ Não é necessário declaração O nome pode começar por qualquer letra ou _
V Seminário de Desenvolvimento em Software Livre
Operadores +
Adição
-
Subtração
*
Multiplicação
/
Divisão
.
Concatenação
=
Atribuição simples
+= Atribuição com adição %
Resto da divisão V Seminário de Desenvolvimento em Software Livre
Operadores(2) -=
Atribuição com subtração
+= Atribuição com adição *= Atribuição com multiplicação /=
Atribuição com divisão
.=
Atribuição com concatenação
== Igual a =!
Diferente de V Seminário de Desenvolvimento em Software Livre
Operadores(3) ===
Igual e mesmo tipo
!==
Conteúdo e tipo diferente
<
Menor que
>
Maior que
=
Maior ou igual
++
Incremento
--
Decremento V Seminário de Desenvolvimento em Software Livre
Arrays ou Matrizes podem ser vistos como: uma forma de lista indexada de variáveis (array unidimensional), como uma tabela (array bidimensional) podem conter qualquer tipo de dados (caractere, inteiro, decimal, string) Inicialização $produto[0]="Batatas"; ou $produto=array("Batatas"); V Seminário de Desenvolvimento em Software Livre
Variáveis especiais $_GET: valores recebidos pela URL ou por formulário, com método GET $_POST: valores recebidos via formulário, via método POST $_REQUEST: combinação do $_GET e $_REQUEST $_SERVER: contém valores de configuração do servidor $_COOKIE: contém cookies registrados $_SESSION: contém sessões registradas V Seminário de Desenvolvimento em Software Livre
Exemplo - exemplo2.php Utilizar a seguinte url: /exemplo2.php?nome=Nasair&idade=18
V Seminário de Desenvolvimento em Software Livre
Transformação de tipos $a = 10;
# $a é um inteiro
$b = (double) $a;
# $b é um double
(int), (integer)
Converte para inteiro
(real),(double),(float) Converte para double (string)
Converte para string
(array)
Converte para array
(object)
Converte para objeto
V Seminário de Desenvolvimento em Software Livre
Condicionais se "tenho dinheiro" "Vou ao Cinema" se "chover" "Fico em casa" senão
if($dinheiro > 0) echo “Vou ao cinema”; if($chuva) echo “Fico em casa”; else
"Vou à praia"
echo “Vou à praia”;
V Seminário de Desenvolvimento em Software Livre
Exercício Criar um arquivo que receba a variável idade pela url e imprima: se a idade for maior ou igual a 21: “Maior de idade – civil” se a idade for maior ou igual a 18: “Maior de idade – penal” se a idade for menor que 18: “Menor de idade” V Seminário de Desenvolvimento em Software Livre
Laços de repetição Enquanto(“Não tiver 60 while($idade < 60) anos”) trabalha_Peao(); “Não paro de trabalhar” While(LedadosTabela()) Enquando(“Há dados echo $dados; na tabela”) “Exiba estes dados” Comece na primeira pessoa e pare na 30a, sempre Exibindo os dados de cada uma
For($i=1; $i V Seminário de Desenvolvimento em Software Livre
Formulários(3) text - Origina uma variável com o nome da caixa. Essa variável é uma string e contím a informação digitada na caixa. checkbox - Origina uma variável com o nome da checkbox. Esta variável contém valor se estiver ativa ou não contém se inativa. radio - Origina uma variável com o nome do radio. Esta variável contém o valor do radio selecionado. select - Origina uma variável com o nome do select. Contém o valor do OPTION selecionado. textarea - Origina uma variável com o nome da textarea. Contém o valor introduzido na mesma. V Seminário de Desenvolvimento em Software Livre
Formulários(4)
V Seminário de Desenvolvimento em Software Livre
Conexões com banco Estabelecer a conexão $con = mysql_connect (“host”,”usuario”,”senha”); Selecionar banco de dados mysql_select_db(“banco”,$con); Enviar a consulta $q = mysql_query(“SELECT...”,$con); Receber os dados $dados = mysql_result($q,$LINHA,$COLUNA); Fechar a conexão mysql_close($con); V Seminário de Desenvolvimento em Software Livre
Conexões – exemplo3.php V Seminário de Desenvolvimento em Software Livre
Conexões – Funções básicas Número de linhas em uma consulta (envio de dados) int mysql_affected_rows($q); Número de linhas em uma consulta (recebimento de dados) int mysql_num_rows($q); Receber toda a linha de uma consulta array mysql_fetch_row($q); Receber toda a linha, em matriz associativa array mysql_fetch_assoc($q); V Seminário de Desenvolvimento em Software Livre
Conexões-exemplo4.php V Seminário de Desenvolvimento em Software Livre
Conexões-exemplo5.php
V Seminário de Desenvolvimento em Software Livre
Cuidados e segurança Sempre “tratar” os dados recebidos via formulário Ao utilizar senha, mantê-la criptografada (sha1 ou md5) Utilizar permissões do banco de dados: nunca ter permissões “adicionais” SQLInjection HTTPS – Servidor Seguro – SSL Usar senha no banco de dados
V Seminário de Desenvolvimento em Software Livre
Exercícios Acrescentar no primeiro formulário um campo que recebe o salário e um campo de seleção para selecionar a empresa da pessoa Fazer com que esse formulário insira os dados na tabela pessoas Fazer uma tela de listagem das pessoas, exibindo o nome, empresa e idade, além de ter um link para editar e outro para apagar Ordenar esta listagem pelo nome da pessoa Criar um filtro nesta listagem (pela empresa) V Seminário de Desenvolvimento em Software Livre
Obrigado!!!! Nasair Júnior da Silva
[email protected]
V Seminário de Desenvolvimento em Software Livre