Tem muita coisa para escrever nesta página.
A PHP pode realizar conexão com vários SGBDs. Para cada um deles existem funções da linguagem. Para todos existem funções que estabelecem a conexão do ambiente PHP com o SGBD. Para as funções de conexão são necessários pelo menos quatro parâmetros:
Nome do Servidor O Servidor de Banco de Dados pode estar rodando em uma máquina dedicada MAS que deve ter um Nome de identificação OU ter seu número IP (FIXO) disponível. Em Máquinas de Desenvolvimento o nome do Servidor é 'localhost'.
Nome do Usuário O SGBD tem uma estrutura interna de gerenciamento de usuários com seus próprios nomes. Esse valor deve ser informado nas funções de conexão PHP-SGBD. Existem alguns Servidores de Dados que usam a estrutura de identificação de usuários do sistema operacional onde o SGBD está hospedado. Isso pode ser bom e ruim. Do lado bom: facilidade de administração. Do lado ruim: menos segurança contra invasões sobre os dados (uma vez que basta quebrar o sistema de acesso do SO que se tem acesso aos dados do SGBD). Não mencionarei aqui qual SGBD usa o modo fácil (e ruim). O PostgreSQL usa o modo bom, ou seja: temos que ter nome e senha do usuário no SGBD. Na maioria das instalações do PostgreSQL para estudo é criado um super usuário postgres COM SENHA informada na instalação. Em outras palavras: o PostgreSQL é bem robusto no item segurança. Como nosso exemplo é de tutorial eu vou supor que exista um usuário estudante com privilágios de superusuário e senha e1s2t3u4d5a6n7t8e9
Senha do Usuário Senha associada ao usuário no Servidor de Dados.
Nome da Base de Dados O SGBD pode administrar várias bases de dados em um mesmo servidor. Cada base tem seu nome (e único) para o SGBD que cuida dela. Quando fazemos a conexão devemos informar ao SGBD qual base de dados queremos acessar. Os SGBDs podem armazenar diferentes configurações de permissões de acesso de um usuário para uma base de dados. O PostgreSQL adota uma política de segurança assim: o usuário é configurado com permissões de acesso ao SGBD e tem iguais direitos sobre qualquer base. Isso facilita muito a administração sem tirar quesitos da segurança. Podemos pensar em categorias de usuários: Analistas, programadores e usuários. Os primeiros podem 'tudo' (criar uma base, criar uma tabela na base e se podem criar também podem remover), o segundo tipo pode acessar toda a base para ler os dados (e estruturas de tabelas) mas sem criar bases nem tabelas, o terceiro só pode acessar as estruturas (bases e bancos) para atualizar seus dados (podendo ser ainda restringidos sobre quais dados serão acessados).
No caso do PostgreSQL AINDA é necessário informar o número da porta onde o 'Listner' está ativo. Em geral o número é 5432.
Bem, vamos aos códigos.
Ou não!!! Precisamos falar de conexões temporárias e persistentes.
Tudo tem um começo. E depois do começo vem o desenrolar de uma história onde o autor da história não sabia direito o que estava escrevendo... e no andar da carruagem ele descobre que deve mudar o curso da história... Quanta enrolação!
No inicio os SGBDs e SOs precisavam usar menos recursos do computador para programas escritos em linguagens como PHP acessassem os bancos de dados e os atualizassem. Por este motivo forte (economia de recurso computacional) o SGBD aceitava uma conexão para CADA UM dos comandos que lhe seriam destinados. A conexão era estabelecida, UM comando era enviado e no mesmo instante a conexão era desfeita. Com o amadurecimento dos Programas Aplicativos que acessavam os bancos de dados percebeu-se o aumento de programas que enviavam mais de um comando ao SGBD. Daí a cada comando era necessário fazer a conexão e esse vai e vem de conexão começou a ficar caro (em termos de processamento computacional). Assim foi criado o conceito de conexão persistente.
Mas para que tanta história?
Se um dia você fizer um sistema e querer hospedar este sistema em um provedor com um SGBD pode ser que o administrador do provedor RECOMENDE FORTEMENTE o uso de conexões NÃO PERSISTENTES. Se você fizer um sistema para rodar em uma empresa com uns 200 computadores na rede acessando seu SGBD você pode usar conexões persistentes.
Bem, vamos aos códigos?
Para estabelecer a conexão e escolher a base de dados em PostgreSQL, o PHP tem UMA função que recebe os 5 parâmetros:
pg_connect()
(tudo bem eu falo, a conexão É persistente). Esta função recebe parâmetros na forma: parâmetro1=valor1 parâmetro2=valor2, etc. Estes parâmetros DEVEM estar na ordem: Servidor, Porta, Base, Usuário e Senha. CADA parâmetro tem um nome. Então... Fica mais fácil montar uma variável tipo string e colocar tudo escrito nela. Esta função gera um ponteiro indicando verdadeiro (e todos os valores da conexão) OU falso. É MUITO FORTEMENTE RECOMENDADO que este ponteiro fique em uma variável.
Mas calma... eu já montei tudo em um programa e coloquei aqui já prontinho para você pegar e usar... Viu?