AplicativosemPHP23072007
644 pág.

AplicativosemPHP23072007


DisciplinaDesenvolvimento de Aplicações para Web I18 materiais84 seguidores
Pré-visualização50 páginas
precisarei conhecer as características dos tipos de ambos, suas faixas de valores, 
tipos de dados, etc).
Alguns Exemplos de Conversão de Funções. Não vou me preocupar com tratamento de erros nem 
com outros detalhes, mostrarei apenas as funções para comparar:
Conexão ao Banco de Dados
No MySQL:
Abrir a conexão:
$con_my = mysql_connect("localhost:porta", "usuario", "senha");
Quando for usar, selecionar o banco:
mysql_select_db('nomebanco', $con_my);
No PostgreSQL:
Etapa única:
$con_pg = pg_connect("host=127.0.0.1 port=5432 dbname=banco user=usuario password=senha");
Obs.: na conexão já se seleciona o banco a ser usado.
Consultas
MySQL:
$q = mysql_query(\u201cSELECT * FROM tabela\u201d, $con_my);
PostgreSQL:
$q = pg_query($con_pg, \u201cSELECT * FROM tabela\u201d);
Obs.: Veja que a ordem dos parâmetros é invertida.
LIMIT
Aqui temos uma boa diferença entre ambos.
Quando for a forma resumida não há diferença entre ambos. Por exemplo:
SELECT * FROM tabela ORDER BY campo LIMIT 5;
WikiBooks, Democratizando o Conhecimento
http://pt.wikibooks.org/wiki/Aplicativos_em_PHP \u2013 Página 220/644
Obs.: Altamente recomendado usar ORDER BY antes de LIMIT, para um retorno coerente e o 
campo do ORDER BY deve ser o campo chave primparia.
Quando o LIMIT trouxer os dois parâmetros então teremos diferença.
Sintaxe no PostgreSQL:
SELECT lista_de_campos FROM expressão [LIMIT { número | ALL }] [OFFSET inicio]
LIMIT ALL \u2013 mesmo que omitir LIMIT.
OFFSET inicio \u2013 orienta para que a consulta retorne somente a partir de inicio.
OFFSET 0 \u2013 mesmo que omitir OFFSET.
LIMIT 50 OFFSET 11 \u2013 Deverá trazer 50 registros do 12 até o 50, caso existam.
Exemplos:
SELECT * FROM cliente ORDER BY codigo LIMIT 2 OFFSET 0;
Irá retornar os registros do 1 e 2.
SELECT * FROM cliente ORDER BY codigo LIMIT 2 OFFSET 1;
Irá retornar os registros do 2 e 3.
SELECT * FROM cliente ORDER BY codigo LIMIT 2 OFFSET 2;
Irá retornar os registros do 3 e 4 (Se existirem).
Ou seja, o primeiro parâmetro do é a quantidade e o segundo o inicial (começando do 0).
Sintaxe no MySQL:
LIMIT [início,] linhas
Retorna o número de linhas especificado. Se o valor início for fornecido, aquelas linhas são puladas 
antes do dado ser retornado. A primeira linha é 0.
Exemplo:
SELECT * FROM cliente ORDER BY codigo LIMIT 3,2;
O comando acima pede apenas os registros de código 4 e 5, os dois após o 3.
SELECT * FROM cliente ORDER BY codigo LIMIT 3,1;
Aqui retornará 1 registro, de código 4, que é o próximo após o 3.
SELECT * FROM cliente ORDER BY codigo LIMIT 2 , 4;
 Aqui retornará os registros de código 3,4,5 e 6.
WikiBooks, Democratizando o Conhecimento
http://pt.wikibooks.org/wiki/Aplicativos_em_PHP \u2013 Página 221/644
No MySQL o início é o primeiro parâmetro e a quantidade é o segundo.
Experimente os exemplos acima num gerenciador dos SGBDs para consolidar o conhecimento 
(phpmyadmin e phppgadmin).
Replicação no MySQL
An introduction to replication1
How to start replicating - the slave server
Migrando .DBF para MySQL
No ótimo site Vivaolinux - http://www.vivaolinux.com.br/dicas/verDica.php?codigo=8792
phpMyAdmin
Software para administração web do MySQL, que conta com muitos recursos e tem interface 
simples de usar.
Site oficial - http://www.phpmyadmin.net/home_page/index.php
Download - http://www.phpmyadmin.net/home_page/downloads.php
Documentação principal - http://www.phpmyadmin.net/documentation/
FAQs - http://www.phpmyadmin.net/documentation/#faq
Doing More With phpMyAdmin: part 1 - http://www.devshed.com/c/a/PHP/Doing-More-With-
phpMyAdmin-Part-1/
Doing More With phpMyAdmin: part 2 - http://www.devshed.com/c/a/PHP/Doing-More-With-
phpMyAdmin-Part-2/
Conversão de Tipos
Convertendo varchar em date no MySQL
Autor: Fábio Berbert de Paula <fberbert@gmail.com> Data: 23/07/2007
Convertendo varchar em date no MySQL
Peguei uma manutenção de um sistema PHP/MySQL pra fazer e surgiu a necessidade de ordenar 
determinada tabela pelo campo data, porém pra minha surpresa esse campo era do tipo 
VARCHAR() ao invés de DATE() ou DATETIME().
WikiBooks, Democratizando o Conhecimento
http://pt.wikibooks.org/wiki/Aplicativos_em_PHP \u2013 Página 222/644
A data estava armazenada na tabela no formato &quot;dd/mm/yyyy&quot;, exemplo:
SELECT data FROM contas;
+------------+
| data |
+------------+
| 26/11/2003 | 
| 04/12/2003 | 
| 28/11/2003 | 
| 05/12/2003 | 
| 29/12/2003 | 
+------------+
O problema é que ao mandar ordenar a tabela por data, por ser VARCHAR o resultado não funciona 
como o esperado:
SELECT data FROM contas ORDER BY data;
+------------+
| data |
+------------+
| 04/12/2003 | 
| 05/12/2003 | 
| 26/11/2003 | 
| 28/11/2003 | 
| 29/12/2003 | 
+------------+
Isso acontece porque se o campo é texto, ele começa a ordenar da esquerda pra direita em ordem 
alfanumérica, onde 04/12 é menor que 26/11, o que está errado, visto que em data a gente precisa 
levar em conta, em ordem de prioridade, ano-mês-dia.
Pra resolver esse problema sem ter de mexer na tabela (o que não tinha permissão pra fazer), use a 
função str_to_date() do MySQL:
SELECT str_to_date(data, '%d/%m/%Y') AS data FROM contas ORDER BY data;
+------------+
| data |
+------------+
| 2003-11-26 | 
| 2003-11-28 | 
| 2003-12-04 | 
| 2003-12-05 | 
| 2003-12-29 | 
+------------+
Hmmm, agora sim! A sintaxe da função é:
str_to_date(CAMPO, 'formato armazenado da string')
Maiores informações:
 * http://dev.mysql.com/...#function_str-to-date 
Fonte: http://www.vivaolinux.com.br/dicas/verDica.php?codigo=9000
WikiBooks, Democratizando o Conhecimento
http://pt.wikibooks.org/wiki/Aplicativos_em_PHP \u2013 Página 223/644
Referências
- Manual Online do MySQL 4.1 em Português - com opção de busca pelo conteúdo.
http://dev.mysql.com/doc/refman/4.1/pt/index.html
- Manual do MySQL em vários idiomas e em vários formatos para download - http://mysql.org/doc/
- Removendo Duplicidades em MySQL - http://www.dicas-l.com.br/print/20060930.html
Como o MySQL pode facilitar a sua vida
Artigo do Diego Hellas no PHPBrasil
http://phpbrasil.com/articles/article.php/id/1361
Retirado de 
&quot;http://pt.wikibooks.org/wiki/Aplicativos_em_PHP/Administra%C3%A7%C3%A3o_dos_SGBDs/
MySQL&quot;
Page categories: PHP
Aplicativos em PHP/Administração dos 
SGBDs/PostgreSQL
WikiBooks, Democratizando o Conhecimento
http://pt.wikibooks.org/wiki/Aplicativos_em_PHP \u2013 Página 224/644
Conteúdo 
\u2022 1 PostgreSQL Prático 
\u2022 2 Tutorial sobre o phpPgAdmin 
\u2022 3 Criando Chave Estrangeira Composta no phpPgAdmin e no PGAdmin 
\u2022 3.1 phpPgAdmin 
\u2022 3.2 PGAdmin 
\u2022 4 PlPgSQL Tutorial 
\u2022 4.1 Delimitadores 
\u2022 4.2 Declaração de Variáveis 
\u2022 4.3 Declarado Funções 
\u2022 4.4 Alias para Parâmetros de Funções 
\u2022 4.5 Executando Funções 
\u2022 4.6 Tipos Polimórficos 
\u2022 4.7 Copiando Tipos 
\u2022 4.8 Tipos row 
\u2022 4.9 Tipo registro (record) 
\u2022 4.10 Renomeando Variáveis 
\u2022 4.11 Atribuições 
\u2022 4.12 Execução de Expressão ou Consulta sem Resultado 
\u2022 4.13 Execução de Comandos Dinâmicos 
\u2022 4.14 Estruturas de Controle 
\u2022 4.15 Condicionais 
\u2022 4.16 Laços através do resultado de consultas 
\u2022 4.17 Capturar Erros 
\u2022 4.18 Declaração de Variáveis do tipo Cursor 
\u2022 4.19 Erros e Mensagens 
\u2022 4.20 Procedimentos de Gatilho (Trigger) 
\u2022 4.21 NEW 
\u2022 4.22 OLD 
\u2022 4.23 TG_NAME 
\u2022 4.24 TG_WHEN 
\u2022 4.25 TG_LEVEL 
\u2022 4.26 TG_OP 
\u2022 4.27 TG_RELID 
\u2022 4.28 TG_RELNAME 
\u2022 4.29 TG_NARGS 
\u2022 4.30 TG_ARGV[] 
\u2022 4.31 Gatilho para registrar inserções e atualizações 
\u2022 4.32 Gatilho para auditoria 
\u2022 4.33 Autoditoria ao nível de campos 
\u2022 4.34 Gatilho para manter uma tabela sumário 
WikiBooks, Democratizando o Conhecimento
http://pt.wikibooks.org/wiki/Aplicativos_em_PHP