POSTGRESQL 9.0.3-1 | INSTALAÇÃO E CONFIGURAÇÃO + INTEGRAÇÃO COM PHP E APACHE - PARTE 2 | WINDOWS

Parte 2 > Continuando...

Acesse: Propriedades do Meu computador, guia "Avançado", botão "Variáveis de ambiente":
ou no Windows vista/7 Acesse:
Propriedades do Meu computador -> Configurações Avançadas do Sistema -> guia Avançado ->  no botão Variáveis de Ambiente -> Edite a variável de sistemaPATH” e adicione o caminho da pasta bin do Postgres (C:\postgres\bin)e clique em ok.


Ainda em variáveis de ambiente crie uma nova variável do sistema:
Em nome digite: “PG_HOME
Em valor digite: “C:\postgres


Após criar e alterar as variáveis do sistema acesse o prompt de comando (Iniciar -> Executar ->Digite “cmd” -> Enter) e digite:

psql --version

O resultado deve ser igual a: “psql (PostgreSQL) 9.0.3”.


Ok, o PostgreSQL está instalado, agora precisamos configurá-lo. Inicialmente acesse o gerenciador de serviços do Windows (Iniciar -> Executar -> Digite “services.msc -> Enter) e procure pelo serviço do PostgreSQL que vai ser “postgresql-9.0”, clique com o direito no serviço e selecioneParar”.
Com o serviço do PostgreSQL parado, feche o gerenciador.


Agora acesse a pasta do PostgreSQL (C:\postgres) e delete a pasta “data”:



Vamos criar agora outra pasta de dados da seguinte forma:

Iniciar -> Executar ->Digite “cmd” -> Enter

Digite os seguintes comandos:

initdb -Upostgres -TLATIN1 -ELATIN1 --locale=C  -D C:\postgres\data

Aguarde a criação do ambiente...

 
Acesse novamente a janela de gerenciamento de serviços (Iniciar -> Executar -> Digite “services.msc -> Enter), localize o serviço do PostgreSQL, clique com o direito nele e selecioneIniciar”.
Feche a janela de gerenciamento de serviços.



Vamos consultar para saber se a codificação do banco foi alterada para LATIN1:

Iniciar -> Executar ->Digite “cmd” -> Enter

No prompt de comando digite psql -Upostgres -l e aperte Enter:



Agora vamos criar um banco de dados ainda no prompt de comando digite:

createdb -Upostgres -ELATIN1 teste



Acesse o banco de dados criado:
psql -Upostgres teste

Crie uma seqüência para que torne um campo da tabela aluno que iremos criar ainda auto-incremental:
create sequence aluno_id_seq;

Crie a tabela aluno com os campos aluno_id, nome, idade:
create table aluno (aluno_id int not null default nextval (‘aluno_id_seq’), nome varchar (40) not null, idade int, constraint aluno_id_aluno_pk primary key (aluno_id));


Crie os registros na tabela aluno:
insert into aluno (nome, idade) values (‘Willian’, 20);
insert into aluno (nome, idade) values (‘Maria’, 17);
insert into aluno (nome, idade) values (‘Joao’, 43);

Depois faça uma consulta para saber se os registros foram criados corretamente:
select * from aluno;


Todo esse procedimento de criação de seqüência, tabela, inserção de registros e consulta deve ser parecido com a imagem abaixo:



Banco de dados criado e configurado, agora vamos integrá-lo com o PHP.

Acesse o “C:\PHP5” e abra o arquivo “php.ini” e localize a linha “;extension=php_pgsql.dll

 

 Remova o “;” que se encontra no começo da linha, salve e feche o arquivo “php.ini”:


Agora vamos criar uma página PHP que traz as informações criadas no banco PostgreSQL:

Abra a pasta “C:\Apache\htdocs\” e dentro dela crie um novo arquivo de bloco de notas com o nome de “tstpgsql.php” e nele digite:

<?php

//Cria a variavel “$con” usa a função “pg_connect” e em caso de erro na conexão retorna uma mensagem informando a falha.
$con = pg_connect ("host=localhost port=5432 user=postgres dbname=teste") or die ("Não foi possível se conectar ao banco de dados");

//Guarda na variavel “$sql” a query (não chega a executar a query).
$sql = "select * from aluno";

//Realiza uma consulta no banco de dados selecionando todos os registros da tabela aluno utilizando a função “pg_query” e como parâmetro a variavel “$sql”, o resultado da consulta é guardado na variavel “$qry_exec”.
$qry_exec = pg_query($sql);

//Utiliza a função “pg_num_rows” para contar a quantidade de linhas que possui na variavel  “$qry_exec” guardando o resultado na variavel “$rowx”.
$rowx = pg_num_rows($qry_exec);

//Faz um looping (repetição) usando a função “pg_fetch_array” para jogar o resultado da variavel “$qry_exec” em Arrays e guardar na variavel “$qry_result”. O resultado desse looping será “id nome idade”. exemplo: “1 Willian 20”.
while ($qry_result = pg_fetch_array($qry_exec)){
$id = $qry_result["aluno_id"];
$nome = $qry_result["nome"];
$idd = $qry_result["idade"];
echo $id; echo " "; echo $nome; echo " "; echo $idd; echo "<BR/>";
                }
?>
Seu arquivo deverá parecer-se com este:

Obs.: Lembrando que as linhas que estão na cor verde são comentários e é ignorado durante a compilação (coloquei para explicar melhor).

Salve o arquivo e feche.

Abra o browser e digite http://localhost:8080/tstpgsql.php

O resultado deverá ser igual a este:






 

Valeu pessoal, tenham uma boa tarde e até a próxima! 

15 comentários:

Paulo Junior disse...

olá, meu nome é Paulo e gostaria de parabenizar pelos tutorias.
Estive seguindo o tutorial de instalação do Postgres no windows mas tive um problema:
Na parte de consulta para saber se a codificação do banco foi alterada para LATIN1, o comando (psql -Upostgres -l) não funciona.
A seguinte mensagem é mostrada depois que executo esse comando: ('more' não é conhecido como um comando interno ou externo, um programa operável ou um arquivo em lotes.
O que pode ser? alguma solução?
Espero resposta e desde já agradeço!

Willian Menezes Silva disse...

Boa noite Paulo,

Obrigado pelo crédito.

Vamos ao seu problema.

Pelo que erro que você me diz ter recebido em relação a linha de comando "psql -Upostgres -l" (o comando 'more' não existe realmente), verifique se você digitou realmente o que está citado no tutorial.

Caso continue dando o mesmo problema rode apenas o comando "psql --version" e veja se o comando é executado normalmente informando a versão do postgresql instalada (se possível traga o resultado).

Se seu postgresql estiver executando normalmente e as variaveis de ambiente configuradas corretamente você não terá problemas.

Qualquer dúvida só perguntar,

No aguardo.

Um abraço.

Att.
Willian

Anônimo disse...

Sei que post já é um pouco antigo... mas quando executo o comando psql -Upostgres -l aparece o erro psql: FATAL: conversion between WIN1252 and LATIN1 is not supported

Willian disse...

É um pouco antigo sim...
mais vamos lá!
O erro que você me informou, está na codificação do banco de dados.
Atente-se no processo de criação do banco de dados onde ao rodar esse comando:

initdb -Upostgres -TLATIN1 -ELATIN1 --locale=C -D C:\postgres\data

O comando acima inicia um novo banco de dados utilizando "initidb" com usuário "postgres" utilizando o template "LATIN1" e o enconding "LATIN1" com o locale "C" na pasta "C:\postgres\data" (diretório onde vai ficar os arquivos do banco de dados)

Esse passo é importante no funcionamento.

Eu te sugiro seguir essas etapas novamente:

1 - Pare o serviço do postgres no services.msc.

2 - Exclua a pasta do banco de dados criada anteriormente.

3 - Crie o banco de dados novamente com este comando.
initdb -Upostgres -TLATIN1 -ELATIN1 --locale=C -D C:\postgres\data (aqui é o caminho da pasta que você vai instalar o banco no meu caso "C:\postgres\data")

4 - Inicie o serviço do postgres novamente.

5 - Rode o comando "psql -Upostgres -l" novamente.

É só refazer esse passo do tutorial, você deve ter pulado esta etapa.

Qualquer coisa pergunte ai,
Boa sorte,
Abraço!

Att.
Willian

Laísa C disse...
Este comentário foi removido pelo autor.
Laísa C disse...

Boa tarde, não sei qual o problema está ocorrendo pois não tenho experiência nenhuma nesse tipo de instalação. Tudo correu bem até esse comando :
initdb -Upostgres -TLATIN1 -ELATIN1 --locale=C -D C:\postgres\data
a resposta que obtenho é :
Tente "initdb --help" para obter informações adicionais.
Por favor, seria de grande ajuda qualquer dica.
Estou utilizando windows 7, 64 bits, e usei o instalador postgresql-9.0.3-1-windows_x64.

Willian disse...



Boa tarde Laísa,

O comando pode não estar funcionando pois você deve ter pulado a parte que adiciona o caminho "C:\postgres\bin" na variável de ambiente "PATH" no começo da página.

Deve-se adicionar a pasta "bin" da instalação na variável "PATH" para poder rodar os comandos do postgres de qualquer lugar no CMD.

Caso você não coloque na variável "PATH", você deve entrar até a pasta com o comando:

Sintaxe: cd "C:\postgres\bin"
e ai sim rodar o comando "initdb"

OBS.: Ou você pode ter digitado alguma parametrização errado no comando, no caso não copie e cole, redigite o comando no CMD.

Qualquer coisa pergunte que responderei amanhã.

Boa sorte!!

Laísa C disse...

Boa tarde!

Realmente o problema era a variável de ambiente, que eu havia adicionado antes, mas havia adicionado no lugar errado. Ao invés de adicionar nas variáveis para o meu usuário do windows, adicionei às variáveis de sistema. Agora ambos tem, e está funcionando.
Antes eu também havia tentado mudar de pasta no cmd para 'C:\postgres\bin', mas o erro continuou ocorrendo.

Agradeço imensamente pela atenção.

Willian disse...


Boa tarde Laísa,

Que bom que conseguiu resolver o problema,

Foi um prazer ajudar!

Marcos Freitas disse...

Boa tarde.Sei que já passou muito tempo que postaste o tutorial, mais ainda é um dos mais atualizados da rede...eu estou tendo problemas na execução...já refiz umas três vezes...Poderia me dar uma ajudinha...quando executo: psql -Upostgres -l aparece o erro psql: FATAL: conversion between WIN1252 and LATIN1 is not supported, eu vi que o companheiro acima teve o mesmo problema, já tentei fazer o que disseste aos outros mas nada. Agradeço pela sua ajuda.

Willian disse...

Marcos,

Essa foi realmente a mensagem que você recebeu quando tentou executar o comando plsql -Upostgres -l ?

Esse comando serve apenas para listar os bancos que foram cadastradas no postgresql, não deveria retornar erro de conversão de codificação ao tentar listar as bases.

Foi nesta etapa mesmo que você teve o problema?

Att.
Willian

Marcos Freitas disse...

Bom dia William, foi sim, segui os passos quatro veses e sempre retorna esta mensagem...a versão do postgres é a 9.2.4.1 e, usando a interface gráfica e trocando o ENCODING PARA 'UTF8' ele funciona...Gostaria realmente de saber o problema, pois quero muito aprender a utilizar o postgres. Agradeço sua atenção e tenha um excelente dia...

Kreuzebek Kreuze disse...

Para resolver o problema de compatibilidade entre o Prompt do Windows e o Latin1 fiz isso:
Computer -> Properties -> Advanced System Settings -> Environment Variables -> System Variables -> New...
Variable name: PGCLIENTENCODING
Variable Value: UTF8

Kreuzebek Kreuze disse...

Outro modo de utilizar LATIN1 no windows é usar a instalação padrão mesmo, e criar o banco assim(PgAdmin db:postgres):
CREATE DATABASE nome_do_banco
WITH OWNER = postgres
ENCODING = 'LATIN1'
TABLESPACE = pg_default
TEMPLATE = template0
CONNECTION LIMIT = -1;

Anônimo disse...

Segui o tutorial e me ajudou bastante, porem o erro do Paulo sobre o comando "psql -Upostgres -l" eh por causa do i, troca "psql -Upostgres -l" para L minusculo... Obrigado

Postar um comentário

Gostou da postagem? Comente!

Related Posts Plugin for WordPress, Blogger...
 
Copyright© 2011 - Tech LiveBR | Desenvolvido por Willian