Dados persistentes em um banco de dados POSGRESQL com PHP

Dados persistentes em um banco de dados POSGRESQL com PHP

PHP é uma linguagem de script de servidor amplamente usada. São vastas capacidades e natureza leve o tornam ideal para o desenvolvimento do front -end da web e, embora seja possível criar estruturas avançadas, seu uso básico também é fácil de aprender, o que o torna um bom ponto de partida para iniciantes também. Os dados registrados, processados, enviados ou exibidos pelo aplicativo que construímos precisam ser armazenados em algum lugar; Nossa página da web está sem estado sem esses dados. Podemos armazenar nossos dados de várias maneiras ou até descartá -los após o uso, mas a maneira mais padrão é armazená -los em um banco de dados projetado com o único objetivo de armazenar dados de maneira confiável e apresentá -los, se necessário, o mais rápido possível.

Neste tutorial, criaremos uma página da web simples para gravar e exibir dados do usuário. Usaremos um PostgreSQL RDBMS como back -end e desenvolveremos nosso aplicativo no PHP que será executado em um servidor da web do Apache. Dessa forma, podemos acessar nosso aplicativo da web a partir de qualquer navegador comum para visualizar ou adicionar ao banco de dados do usuário. É a natureza do aplicativo da web que muitos usuários/operadores podem trabalhar com ele simultaneamente, tudo o que eles precisam é um navegador e acesso de rede ao nosso aplicativo.

Neste tutorial, você aprenderá:

  • Como instalar os pacotes necessários para a conexão PostgreSQL no PHP
  • Como criar o lado do banco de dados do aplicativo
  • Como codificar o aplicativo de exemplo
  • Como operar e verificar o aplicativo de exemplo
Gravando dados do navegador de dados.

Requisitos de software e convenções usadas

Requisitos de software e convenções de linha de comando Linux
Categoria Requisitos, convenções ou versão de software usada
Sistema Ubuntu 18.04.2
Programas PostgreSQL 10.9, Php 7.2.19
Outro Acesso privilegiado ao seu sistema Linux como raiz ou através do sudo comando.
Convenções # - requer que os comandos Linux sejam executados com privilégios root diretamente como usuário root ou por uso de sudo comando
$ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

Notas sobre componentes de software

Configuramos nosso aplicativo no Ubuntu, mas basicamente esse processo pode ser transportado para qualquer distribuição. As diferenças estão nos gerentes de pacotes e nomes de pacotes, bem como em algum caminho de diretório. Observe também que, embora usemos as versões dos componentes do software mencionados acima, este aplicativo pode ser construído em várias versões dos componentes com pequenos ajustes. Alguns exemplos de outras distribuições serão incluídos para comparação.

Você pode notar que o aplicativo é minimalista: isso é de propósito. O objetivo deste guia é mostrar os princípios básicos do desenvolvimento de um aplicativo que possa se comunicar com um banco de dados, o mais simples possível. Código mínimo, componentes mínimos. Não use este guia para criar aplicativos de produção, pois não possui medições de segurança, reusa ou otimização para esse assunto.

Instalando os pacotes necessários

Depois de instalar o banco de dados PostgreSQL, tudo o que precisamos é adicionar suporte a PHP. Para isso, precisamos do PHP-PGSQL pacote. Usaremos apt Para instalá -lo:

# instalação apt-get php-pgsql

Algumas distros podem chamá -lo php7-pgsql E similares, mas todos os gerentes de pacotes fornecem função de pesquisa, por isso é fácil encontrar o que precisamos. Por exemplo, é assim que você instala o PostgreSQL nos sistemas RHEL8 / CENTOS 8 Linux.

Também precisamos instalar o PHP, um servidor da web e suporte do PHP no servidor da web. Isso está a dois pacotes de distância:

# install apt-get Apache2 libapache2-mod-php

Podemos iniciar os dois serviços para que estejam disponíveis nos próximos passos. Usaremos Systemd por isso.

# SystemCtl Iniciar PostGresql # Systemclt Iniciar Apache2


Criando o banco de dados e os objetos necessários

O lado do banco de dados do nosso aplicativo consistirá em um banco de dados, uma única tabela e uma sequência para oferecer suporte à atribuição automática de chave primária.

  1. Vamos mudar para o PostGres do utilizador:
    # su - postgres
  2. Faça login no banco de dados:
    $ psql psql (10.9 (Ubuntu 10.9-0UBUNTU0.18.04.1)) Digite "Ajuda" para obter ajuda. PostGres =#
  3. Crie um novo usuário:
    PostGres =# Crie uma função ExementUser com a senha de login 'Exemplo de passagem';

    E um banco de dados com o conjunto do proprietário.

    PostGres =# Criar banco de dados ExampledB Proprietário Exemploneser Encoding 'UTF-8';
  4. Depois de sair do PSQL ferramenta, criamos um arquivo de texto chamado exemplo_table.SQL Com o seguinte conteúdo:
    Crie sequência userID_seq Iniciar com 0 incremento por 1 No MaxValue MinValue 0 Cache 1; Alter Sequence UserID_Seq Proprietário para ExementUser; Criar usuários da tabela (UserID Numeric Primary Key Padrão NextVal ('UserID_SEQ' :: Regclass), Texto do nome de usuário NÃO NULL, Texto do email NÃO NULL, registro_date Timestamp padrão Now ()); alterar o proprietário dos usuários da tabela para o Exementuser;
    cópia de

    Aqui, criamos uma sequência na linha 1 que fornecerá a chave primária exclusiva para cada registro da tabela, do que definir sua propriedade. Na linha 3, criamos uma tabela que manterá os dados do usuário que gravaremos e exibiremos com o aplicativo. Definimos valores padrão para o ID do usuário e data de registro, e deixará o banco de dados para preencher esses campos para nós.

  5. Carregamos o arquivo SQL acima no novo banco de dados:
    $ psql -d ExampledB < example_table.sql CREATE SEQUENCE ALTER SEQUENCE CREATE TABLE ALTER TABLE

Com isso, nosso banco de dados está configurado e pronto para servir. PostgreSQL 10.9 no Ubuntu aceita logins protegidos por senha no dispositivo Loopback por padrão. Se você estiver usando outras versões, pode ser necessário modificar o PG_HBA.conf Para ativar o acesso ao banco de dados. Há um exemplo em nosso guia de instalação do Redmine sobre como configurar isso.

Construindo o código do aplicativo

Embora existam certamente muitas ótimas ferramentas por aí para ajudar a produzir o código -fonte de trabalho, não abordaremos isso aqui, isso adicionaria à complexidade deste guia. Vamos criar um arquivo de texto chamado gravação.php, no padrão Document_root Diretório no Ubuntu 18, /var/www/html/. Em outras distribuições, isso pode ser /srv/www/htdocs/, ou alguma outra coisa. Consulte a configuração do servidor da web se você não tiver certeza.

O PHP é uma linguagem de script, o que significa que não precisamos compilar nosso código, basta apresentá -lo ao servidor da web, que interpretará o tempo de execução dele.

Podemos usar um editor de texto da linha de comando, como vi ou Nano Para preencher o arquivo PHP mencionado com o seguinte código -fonte:

    Página de gravação do usuário   

Preencha o formulário abaixo e pressione Envie para gravar os dados.





\ n#Nome de usuárioEndereço de emailData de registro\ n "; while ($ row = pg_fetch_row ($ resultado)) echo"" . $ line [0] . "" . $ Row [1] . "" . $ Row [2] . "" . $ Row [3] . "\ n "; eco"\ n "; / * Seção 7 * / pg_close ($ dbconn); ?>
cópia de

Iniciamos nosso código como uma página HTML estática simples em seção 1. Nós criamos um formulário em seção 2 que fornece ao usuário a capacidade de gravar dados no aplicativo. Só pediremos um nome de usuário e um endereço de e-mail. No Seção 3 Incorporamos o código PHP na página. Seção 4 Cria a conexão do banco de dados usando as informações de conexão que configuramos na etapa do banco de dados. Se a conexão não puder ser construída, o aplicativo morre com uma mensagem de erro.



No Seção 5 lidamos com todos os dados enviados para processamento com o formulário em que criamos seção 2. Se o "nome de usuário" e o "email" forem publicados, verificaremos se eles não estiverem vazios e, se não forem, inseriremos -os no banco de dados usando nossa conexão com o banco de dados.

Independentemente de receber quaisquer dados publicados, consultaremos a tabela de banco de dados para dados de usuário já registrados em Seção 6. Vamos gerar o código HTML necessário para fornecer uma tabela preenchida com os dados que são retornados do banco de dados.

No Setion 7 Fechamos nossa conexão de banco de dados (sempre limpe os objetos que não são mais necessários!) e em Seção 8 Deixamos o código PHP e terminamos nossa página com tags html simples. E com isso, nosso aplicativo está completo, podemos começar a usá -lo.

Usando o aplicativo

Vamos apontar um navegador para http: // localhost/gravação.php. A única página do nosso exemplo do aplicativo aparecerá.

A tabela de usuários está vazia.

Podemos preencher os campos do formulário com dados aleatórios para testar o aplicativo. Quando o texto adicionado aos dois campos, podemos enviar os dados.

Preenchendo os campos de formulário com dados de amostra.

Após o envio, a página mostra o mesmo formulário em que podemos gravar nosso próximo usuário, e também a já gravada, que é consultada no banco de dados após a inserção. Concluímos nosso objetivo de um aplicativo de gravação de dados do usuário.

Listagem de aplicativos já registrada dados.

Também podemos verificar se os dados são armazenados com sucesso no banco de dados usando PSQL:

$ PSQL -D ExampledB ExampledB =# Selecione * FROM USUERS; UserID | nome de usuário | Email | registro_date --------+----------+------------------------+---- -------------------------- 0 | Foobar | [email protected] | 2019-06-25 20:28:18.224375 (1 linha)


Pensamentos finais

Criamos um exemplo de aplicativo usando conhecimento de diferentes campos, banco de dados, servidor da web, o Http Protocolo em geral e, claro, desenvolvimento de PHP. Este guia pretende mostrar como é fácil criar algo útil com a união desses campos. Minha esperança é que este guia possa ajudar os iniciantes a entender alguns dos aspectos do desenvolvimento e podem demonstrar que não é ciência espacial - adicionamos apenas algumas linhas de código aqui e ali, e a coisa toda começa a trabalhar juntos.

Enquanto este exemplo de aplicativo serve seu objetivo de demonstração, o código e toda a solução, é claro, chora para melhorar. Só para citar alguns ..

  • Nada impede um operador de gravar o nome de usuário exato e/ou e-mail duas vezes. Isso resultaria em registros redundantes. Isso pode ser tratado tanto no banco de dados (restrição exclusiva) quanto na aplicação (verificar dados antes da inserção).
  • De onde vêm os dados registrados? O que protege a aplicação de um ator ruim? No momento, nada, um único script de shell seria suficiente para sobrecarregá -lo, apenas as defesas padrão do servidor da web estão em vigor - mas isso não me impede de postar a trilogia completa do Senhor dos Anéis em um dos campos 1000 vezes por minuto ( apenas largura de banda). Nesse estado do aplicativo, é fácil preencher os discos no banco de dados com dados aleatórios - a verificação de entrada do usuário vem para jogar aqui novamente, mas também autenticação e autorização.
  • O web design está ausente neste momento. Alguns CSS, Mais um texto que ajuda o trabalho do operador, mensagens de erro úteis ... a simpatia do usuário também é um ponto de vista importante.
  • Naturalmente, gravar o nome de usuário de um usuário e o e-mail associado é apenas um exemplo, podemos gravar primeiro e sobrenome, número de telefone talvez, mais de um e-mail por usuário ... qualquer outra coisa que seja útil para armazenar.

A lista poderia continuar e continuar. Cabe a você, o leitor, para melhorar seu próprio aplicativo. Se este guia o ajudar a seguir o caminho do desenvolvimento, como um hobby ou com o objetivo de ser um profissional, então serviu bem a seu propósito.

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Loops aninhados em scripts de basquete
  • Como criar uma pilha de lâmpadas à base de docker usando o docker em…
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Mint 20: Melhor que o Ubuntu e o Microsoft Windows?
  • Instalação do Ampache Raspberry Pi
  • Linux Apache não executando arquivos PHP: Solução
  • Uma introdução à automação, ferramentas e técnicas do Linux
  • OpenLITESPEED WordPress Instalação
  • Como instalar o PHP no Ubuntu Linux