Utilizando Php e Mysql

Nasair Júnior da Silva nasair@solis.coop.br
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

simples. eficiente e seguro. Escrita em C e C++. Sistema de privilégios flexível. Testada com diferentes compiladores. Tabelas de disco sob a forma B-tree rápidas com compressão de índices. Permite 16 índices por tabela. V Seminário de Desenvolvimento em Software Livre . Possui um sistema de alocação de memória extremamente rápido.O que é SQL/MySql (3) Suporte a LEFT OUTER JOIN com a sintaxe ANSI SQL e ODBC.

. http://www. Algumas novas funcionalidades: Gatilhos (triggers) Stored procedures Visões (views) Joins otimizados.mysql.. .com V Seminário de Desenvolvimento em Software Livre .O que é SQL/MySql (4) DELETE. Nomes de funções não entram em conflito com nomes de tabelas ou colunas. REPLACE e UPDATE devolvem o número de linhas afetadas pelo comando. INSERT.

API baseado no mSQL.4 V Seminário de Desenvolvimento em Software Livre .0.1 lançado em binário para Linux e Solaris 2005: Mysql 5.11.Histórico do MySql 1979: Unireg: Monty Widelious criou o Unireg. um gerenciado open source (não era muito bom para grandes tabelas) 1996: Mysql 3. um banco de dados não-SQL para grandes tabelas 1994: Monty iniciou o desenvolvimento de um SGBD baseado no Unireg.

D)]: números decimais com D casas decimais DATE: armazena informação relativa a datas.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. O formato default é 'YYYY-MM-DD' V Seminário de Desenvolvimento em Software Livre .

difere do SET pois só são armazenados valores previamente especificados 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.

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 . Cada registro. desta forma.Especificação de colunas Primary Key (Chave Primária): usada para diferenciar um registro do outro.

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 .

Visualizar todos os bancos de dados mysql> show databases.. ou: mysql> desc NomeDaTabela. Visualizar os campos de uma tabela mysql> show fields from NomeDaTabela.Iniciando. V Seminário de Desenvolvimento em Software Livre . Visualizar as tabelas do banco atual mysql> show tables..

nome varchar(50). nome varchar(50).Criando uma tabela Mysql>CREATE TABLE empresas ( codigo integer auto_increment. primary key(codigo).// V Seminário de Desenvolvimento em Software Livre .// Mysql>CREATE TABLE pessoas ( codigo integer auto_increment. foreign key(empresa) references empresas (codigo)) type=innodb. salario real. primary key(codigo)) type=innodb. empresa integer.

1000).4.Inserindo valores INSERT INTO empresas ( nome) VALUES ('Solis'). ('Luis Inácio'.'2'. ('Daniel'.// INSERT INTO pessoas(nome.('Cesar'. ('Andréa'.4. V Seminário de Desenvolvimento em Software Livre . empresa.10.('Joice'.3.700).400).// INSERT INTO pessoas (nome.('Roberto Jefferson'. ('Viviane'.600).1.100).3000).('Governo FEDERAL').('Univates').5000). salario) VALUES ('Nasair Silva'.1. salario) VALUES ('Frederico'.200).2.3.1.('Unisinos').('Leonardo'. empresa.300).500).

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 . mysql>alter table pessoas add data_nascimento date. mysql>alter table pessoas add telefone int.Alterando uma tabela mysql>desc pessoas.

Alterando mysql>SELECT * FROM pessoas. salario FROM pessoas. salario FROM pessoas. V Seminário de Desenvolvimento em Software Livre . mysql>SELECT nome. mysql>UPDATE pessoas SET salario = 500 WHERE salario < 500.Exibindo. mysql>UPDATE pessoas SET salario=6000 WHERE codigo=9. mysql>SELECT nome. mysql>DELETE FROM pessoas WHERE salario >5000. Apagando. mysql>DELETE FROM pessoas WHERE codigo=8.

INSERT. ● ALTER. SELECT.user (Host. DELETE. mysql> revoke DELETE on curso. mysql> grant all privileges on curso. V Seminário de Desenvolvimento em Software Livre .* FROM aluno@localhost. CREATE. UPDATE. Password) values ('localhost'.* to aluno@localhost identified by 'teste123'. 'aluno'.Criando usuários mysql> insert into mysql. password ('teste123')). DROP. User. mysql> flush privileges.

mysql>drop database teste. 0 rows affected (0.00 sec) mysql>show databases. V Seminário de Desenvolvimento em Software Livre . Query OK.Apagando banco e tabela mysql>drop table teste. 0 rows affected (0. Query OK.00 sec) mysql>show tables.

net V Seminário de Desenvolvimento em Software Livre . Pode ser utilizada como script local Extensão php-gtk para programação local Site: http://br.php.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.

HTTP..O que o PHP pode fazer ? Tudo o que outras linguagens fazem. NNTP... ● 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. Pode ser utilizado em programação local V Seminário de Desenvolvimento em Software Livre ● ● ● .. SNMP. POP3.

Em seguida a versão 4. muito mais rebusta.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. com um time de desenvolvedores surge a versão 3. com várias alterações e melhorias V Seminário de Desenvolvimento em Software Livre . Em 1997. esta é a versão 2. Versão 5.

?> <script language=”php”> codigo.Primeiros Passos Tags que identificam o PHP <?php codigo. </script> V Seminário de Desenvolvimento em Software Livre . ?> <? codigo.

?> V Seminário de Desenvolvimento em Software Livre .Verificando a instalação <?php phpinfo().

// : 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 . Mundo echo. print: Ecreve um output na tela echo('Olá Mundo!').Olá.

". ?> </BODY> </HTML> V Seminário de Desenvolvimento em Software Livre .exemplo1. echo "<BR><BR>Hoje é: $hoje.Exemplo .php <HTML><HEAD> <TITLE>Script de exemplo</TITLE> </HEAD> <BODY> <CENTER>Bem-vindo ao script de exemplo:</CENTER> <? $hoje = date("d-m-Y").

1. 'Z' 0. 2 15.5 String: "PHP É legal!" Real/Flutuante: 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 . 'b'.Variáveis Os tipos de variáveis mais usados são: Caractere: Inteiro: 'a'.

= 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 + * / .

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 Menor ou igual a Maior ou igual Incremento Decremento V Seminário de Desenvolvimento em Software Livre .

como uma tabela (array bidimensional) podem conter qualquer tipo de dados (caractere. string) Inicialização $produto[0]="Batatas". ou $produto=array("Batatas"). decimal.Arrays ou Matrizes podem ser vistos como: uma forma de lista indexada de variáveis (array unidimensional). V Seminário de Desenvolvimento em Software Livre . inteiro.

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 . com método GET $_POST: valores recebidos via formulário.Variáveis especiais $_GET: valores recebidos pela URL ou por formulário.

?> V Seminário de Desenvolvimento em Software Livre .Exemplo .$_GET['idade'].php?nome=Nasair&idade=18 <?php echo “Nome Informado: “.$_GET['nome']. echo “<br />Idade: “.exemplo2.php Utilizar a seguinte url: /exemplo2.

(float) Converte para double V Seminário de Desenvolvimento em Software Livre .(double). $b = (double) $a. (int). (integer) (string) (array) (object) # $a é um inteiro # $b é um double Converte para inteiro Converte para string Converte para array Converte para objeto (real).Transformação de tipos $a = 10.

V Seminário de Desenvolvimento em Software Livre .Condicionais se "tenho dinheiro" "Vou ao Cinema" se "chover" "Fico em casa" senão "Vou à praia" if($dinheiro > 0) echo “Vou ao cinema”. if($chuva) echo “Fico em casa”. else echo “Vou à praia”.

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 .

“Não paro de trabalhar” While(LedadosTabela()) Enquando(“Há dados echo $dados.Laços de repetição Enquanto(“Não tiver 60 while($idade < 60) anos”) trabalha_Peao(). na tabela”) “Exiba estes dados” Comece na primeira pessoa e pare na 30a. $i<=30. sempre Exibindo os dados de cada uma For($i=1.$i++) echo $dados. V Seminário de Desenvolvimento em Software Livre .

} Caso Mês for 2 então é “Fevereiro”.. . swith($mes) { case '1': echo “Janeiro”. break. case '2': echo “Fevereiro”.Condicionais(2) Caso Mês For 1 então é “Janeiro”.. break. V Seminário de Desenvolvimento em Software Livre .

Funções É um bloco de código que se declara para que possa usar-se sempre que for necessário Podem retornar valores através do comando RETURN Podem receber parâmetros por valor e por referência (acrescenta-se & na frente da variável). V Seminário de Desenvolvimento em Software Livre .

} } V Seminário de Desenvolvimento em Software Livre . case '2': return “Fevereiro”.Funções(2) Function mesExtenso($mes) { switch($mes) { case '1': return “Janeiro”.

: <input type=text name=data /><br /> <input type=submit /> </form> V Seminário de Desenvolvimento em Software Livre .Formulários Quando é feito um submit de um formulário para um script PHP.php"> Digite o seu nome: <input type=text name=nome /><br /> Digite o seu telefone: <input type=text name=fone /><br /> Digite o sua data nasc. e transformar um formulário num conjunto de variáveis com a informação enviada <form action="verifica. o PHP é capaz de entender o que lhe é enviado.

function idade($data) { $idade = date('Y') – substr($data.$_GET['fone']. echo “<br />Nome: “.” anos”.$_GET['nome'].$_GET['data']. echo “<br />Sua idade é: “.idade($_GET['data']).-4). } ?> V Seminário de Desenvolvimento em Software Livre . return $idade. echo “<br />Telefone: “.Formulários(2) <?php echo “Os dados que você digitou são:”. echo “<br />Data: “.

select .Formulários(3) text . V Seminário de Desenvolvimento em Software Livre .Origina uma variável com o nome do select. Contém o valor introduzido na mesma.Origina uma variável com o nome da caixa.Origina uma variável com o nome da checkbox.Origina uma variável com o nome da textarea. Contém o valor do OPTION selecionado. Essa variável é uma string e contím a informação digitada na caixa. checkbox . radio . Esta variável contém valor se estiver ativa ou não contém se inativa. Esta variável contém o valor do radio selecionado.Origina uma variável com o nome do radio. textarea .

Formulários(4) V Seminário de Desenvolvimento em Software Livre .

$con).”usuario”...$con).$LINHA. Receber os dados $dados = mysql_result($q. Enviar a consulta $q = mysql_query(“SELECT.”senha”). V Seminário de Desenvolvimento em Software Livre . Selecionar banco de dados mysql_select_db(“banco”. Fechar a conexão mysql_close($con).”.Conexões com banco Estabelecer a conexão $con = mysql_connect (“host”.$COLUNA).

”root”.Conexões – exemplo3. ?> V Seminário de Desenvolvimento em Software Livre .php <?php $con = mysql_connect (“localhost”. mysql_select_db(“curso”. $q = mysql_query(“SELECT nome FROM pessoas”. echo mysql_result($q.0).0.$con).”root”) or die(“Não foi possível fazer a conexão”). mysql_close($con).$con) or die(“Não foi possível selecionar o banco”).

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). em matriz associativa array mysql_fetch_assoc($q). Receber toda a linha de uma consulta array mysql_fetch_row($q). Receber toda a linha.

$con) or die(“Não foi possível selecionar o banco”).$con).$i<$num.”root”.$empresa) = mysql_fetch_row($q). empresa FROM pessoas”. mysql_select_db(“curso”. ?> V Seminário de Desenvolvimento em Software Livre . } mysql_close($con).Conexões-exemplo4.$i++) { list($nome. $q = mysql_query(“SELECT nome.”root”) or die(“Não foi possível fazer a conexão”).php <?php $con = mysql_connect(“localhost”. $num = mysql_num_rows($q). for($i=0. echo “<br />Nome: $nome ($empresa)”.

php <?php $con = mysql_connect(“localhost”.$nome) = mysql_fetch_row($q). echo “<select name=empresa>”. } echo “</select>”. $q = mysql_query(“SELECT codigo. nome FROM empresas”. $num = mysql_num_rows($q).$con).”root”. for($i=0. mysql_close($con). mysql_select_db(“curso”.”root”).$i++) { list($codigo. ?> V Seminário de Desenvolvimento em Software Livre .$i<$num.Conexões-exemplo5.$con). echo “<option value=$codigo>$nome</option>”.

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 .Cuidados e segurança Sempre “tratar” os dados recebidos via formulário Ao utilizar senha.

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 . empresa e idade. exibindo o nome.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.

Obrigado!!!! Nasair Júnior da Silva nasair@solis.br V Seminário de Desenvolvimento em Software Livre .coop.

Sign up to vote on this title
UsefulNot useful