Przetrzymywanie danych w bazie danych POSGRESQL z PHP

Przetrzymywanie danych w bazie danych POSGRESQL z PHP

PHP jest szeroko używanym językiem skryptów serwerów. To ogromne możliwości i lekka natura sprawia, że ​​idealnie nadaje się do rozwijania frontend i chociaż można tworzyć w nim zaawansowane struktury, podstawowe użycie jest również łatwe do nauczenia się, co czyni go również dobrym punktem wyjścia dla początkujących. Dane zarejestrowane, przetworzone, wysyłane lub wyświetlane przez budowę aplikacji, które budujemy, muszą jednak być gdzieś przechowywane; Nasza strona internetowa jest bezpaństwowa bez tych danych. Możemy przechowywać nasze dane na wiele sposobów, a nawet odrzucić je po użyciu, ale najbardziej standardowym sposobem jest przechowywanie ich w bazie danych zaprojektowanej do wyłącznego celu przechowywania danych w niezawodny sposób i przedstawienie ich w razie potrzeby, tak szybko, jak to możliwe,.

W tym samouczku zbudujemy prostą stronę internetową do rejestrowania i wyświetlania danych użytkownika. Użyjemy PostgreSQL RDBMS jako backend i opracujemy naszą aplikację w PHP, która będzie działać na serwerze Apache. W ten sposób możemy uzyskać dostęp do naszej aplikacji internetowej z dowolnej wspólnej przeglądarki, aby wyświetlić lub dodać do naszej bazy danych użytkowników. Jest to charakter aplikacji internetowej, z którą wielu użytkowników/operatorów może współpracować jednocześnie, wszystko, czego potrzebują, to przeglądarka i dostęp do naszej aplikacji.

W tym samouczku nauczysz się:

  • Jak zainstalować potrzebne pakiety do połączenia PostgreSQL w PHP
  • Jak utworzyć stronę bazy danych aplikacji
  • Jak kodować przykładową aplikację
  • Jak obsługiwać i zweryfikować przykładową aplikację
Rejestrowanie przeglądarki Data Trough.

Zastosowane wymagania i konwencje oprogramowania

Wymagania oprogramowania i konwencje linii poleceń Linux
Kategoria Wymagania, konwencje lub wersja oprogramowania
System Ubuntu 18.04.2
Oprogramowanie PostgreSQL 10.9, php 7.2.19
Inny Uprzywilejowany dostęp do systemu Linux jako root lub za pośrednictwem sudo Komenda.
Konwencje # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
$ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny

Uwagi na temat komponentów oprogramowania

Konfigurujemy naszą aplikację na Ubuntu, ale w zasadzie ten proces można przenieść na dowolną dystrybucję. Różnice są w menedżerach pakietów i nazwach pakietów, a także na jakiejś ścieżce katalogu. Należy również pamiętać, że chociaż użyjemy wersji wymienionych powyżej komponentów oprogramowania, ta aplikacja może być zbudowana na różnych wersjach komponentów z małymi korektami. Do porównania zostaną uwzględnione niektóre przykłady innych rozkładów.

Możesz zauważyć, że aplikacja jest minimalistyczna: jest celowo. Celem tego przewodnika jest pokazanie podstawowych zasad opracowania aplikacji, która może komunikować się z bazą danych, tak proste, jak to możliwe. Minimalny kod, minimalne komponenty. Nie używaj tego przewodnika do budowania aplikacji produkcyjnych, ponieważ nie ma żadnych pomiarów bezpieczeństwa, ponownej mocy lub optymalizacji.

Instalowanie potrzebnych pakietów

Po zainstalowaniu bazy danych PostgreSQL wszystko, czego potrzebujemy, to dodanie obsługi PHP. Do tego potrzebujemy PHP-PGSQL pakiet. Użyjemy trafny Aby go zainstalować:

# apt-get install pHP-PGSQL

Niektóre dystrybucje mogą to nazwać PHP7-PGSQL I podobne, ale wszyscy menedżerowie pakietów zapewniają funkcję wyszukiwania, więc łatwo jest znaleźć to, czego potrzebujemy. Na przykład w ten sposób instalujesz PostgreSQL w systemach RHEL8 / CENTOS 8.

Musimy również zainstalować PHP, serwer Web. To dwa paczki dalej:

# apt-get Zainstaluj apache2 libapache2-mod-php

Możemy rozpocząć obie usługi, aby były dostępne w kolejnych krokach. Użyjemy Systemd za to.

# Systemctl Start PostgreSQL # SystemClt Start Apache2


Tworzenie bazy danych i potrzebnych obiektów

Strona bazy danych naszej aplikacji będzie składać się z bazy danych, pojedynczej tabeli i sekwencji obsługi automatycznego przypisania klucza podstawowego.

  1. Przejdziemy na Postgres użytkownik:
    # Su - Postgres
  2. Zaloguj się do bazy danych:
    $ PSQL PSQL (10.9 (Ubuntu 10.9-0ubuntu0.18.04.1)) Wpisz „pomoc” o pomoc. Postgres =#
  3. Utwórz nowego użytkownika:
    postgres =# Utwórz rolę exampleSer z hasłem logowania „examplePass”;

    Oraz baza danych z zestawem właściciela.

    Postgres =# Utwórz bazę danych EXPOMPLEDB Miecznik Przykładowy Kodowanie „UTF-8”;
  4. Po wyjściu z PSQL narzędzie, tworzymy plik tekstowy o nazwie przykład_table.SQL Z następującą zawartością:
    Utwórz sekwencję userID_SEQ Start z 0 przyrostem przez 1 Brak MaxValue MinValue 0 Cache 1; Zmień sekwencję userid_seq właściciel do exampleSer; Utwórz tabelę użytkowników (UserId Numeric Primary Keyault Domyślnie NextVal ('userid_seq' :: RegClass), nazwa użytkownika tekst nie null, e -mail tekst nie null, rejestracja mimestamP_Date default ()); Zmień właściciel użytkowników tabeli na exactuser;
    Kopiuj

    Tutaj tworzymy sekwencję w wierszu 1, która zapewni unikalny klucz podstawowy do każdego rekordu w tabeli, niż ustawić własność. W wierszu 3 tworzymy tabelę, która będzie przechowywać dane użytkownika, które nagramy i wyświetlimy za pomocą aplikacji. Ustawiamy wartości domyślne dla identyfikator użytkownika I Data rejestracji, i pozostawi to bazie danych, aby wypełnić te pola dla nas.

  5. Powyższy plik SQL ładujemy do nowej bazy danych:
    $ psql -d exampledb < example_table.sql CREATE SEQUENCE ALTER SEQUENCE CREATE TABLE ALTER TABLE

Dzięki temu nasza baza danych jest skonfigurowana i gotowa do obsługi. PostgreSQL 10.9 na Ubuntu domyślnie przyjmuje loginy chroniono hasło na urządzeniu pętlowym. Jeśli używasz innych wersji, może być konieczne zmodyfikowanie PG_HBA.conf Aby umożliwić dostęp do bazy danych. W naszym przewodniku instalacji Redmine jest przykład, jak to skonfigurować.

Budowanie kodu aplikacji

Chociaż z pewnością istnieje wiele świetnych narzędzi, które pomogą tworzyć działający kod źródłowy, nie omówimy ich tutaj, dodałoby to do złożoności tego przewodnika. Utworzymy plik tekstowy o nazwie nagranie.php, w domyślnie Document_root katalog na Ubuntu 18, /var/www/html/. W przypadku innych dystrybucji może to być /srv/www/htdocs/, albo coś innego. Jeśli nie jesteś pewien.

PHP jest językiem scenariuszy, co oznacza, że ​​nie musimy kompilować nasz kod, po prostu prezentować go w serwerze WebServer.

Możemy użyć edytora tekstu wiersza poleceń, takiego jak vi Lub Nano Aby wypełnić wspomniany plik PHP następującym kodem źródłowym:

    Strona nagrywania użytkownika   

Wypełnij poniższy formularz i naciśnij Prześlij, aby zapisać dane.





\N#Nazwa użytkownikaAdres e-mailData rejestracji\ n "; while ($ row = pg_fetch_row ($ wynik)) echo"" . $ wiersz [0] . "" . $ wiersz [1] . "" . $ wiersz [2] . "" . $ wiersz [3] . "\ n "; echo"\ n "; / * sekcja 7 * / pg_close ($ dbconn); ?>
Kopiuj

Rozpoczynamy nasz kod jako prosta statyczna strona HTML na Sekcja 1. Tworzymy formularz w Sekcja 2 To zapewnia użytkownikowi możliwość rejestrowania danych do aplikacji. Poprosimy tylko o nazwę użytkownika i adres e-mail. Na Sekcja 3 Osadziliśmy kod PHP na stronie. Sekcja 4 tworzy połączenie bazy danych za pomocą informacji o połączeniu, które skonfigurujemy na etapie bazy danych. Jeśli nie można zbudować połączenia, aplikacja umiera z komunikatem o błędzie.



Na Sekcja 5 Obsługujemy dowolne dane, które są wysyłane do przetworzenia z formularzem, który stworzyliśmy Sekcja 2. Jeśli zarówno „nazwa użytkownika”, jak i „e -mail”, sprawdzimy, czy nie są puste, a jeśli nie są, wstawymy je do bazy danych za pomocą naszego połączenia bazy danych.

Niezależnie od otrzymania opublikowanych danych, przesłuchamy tabelę bazy danych o już zarejestrowanych danych użytkownika pod adresem Sekcja 6. Wygenerujemy niezbędny kod HTML, aby zapewnić tabelę wypełnioną danymi zwracanymi z bazy danych.

Na Setion 7 Zamykamy nasze połączenie z bazą danych (zawsze oczyszczamy obiekty, które nie są już potrzebne!) i Sekcja 8 Zostawiamy kod PHP i kończymy naszą stronę prostymi tagami HTML. A dzięki temu nasza aplikacja jest kompletna, możemy zacząć jej używać.

Za pomocą aplikacji

Wskazamy przeglądarkę http: // localhost/nagrywanie.php. Pojawi się jedyna strona naszej przykładowej aplikacji.

Tabela użytkowników jest pusta.

Możemy wypełnić pola formularza losowymi danymi, aby przetestować aplikację. Po dodaniu tekstu do obu dziedzin możemy przesłać dane.

Wypełnienie pól formularzy przykładowymi danymi.

Po przesłaniu strona pokazuje ten sam formularz, w którym możemy nagrać naszego następnego użytkownika, a także ten już zarejestrowany, który jest zapytany z bazy danych po wstawieniu. Uzupełniliśmy nasz cel aplikacji do rejestrowania danych użytkownika.

Lista aplikacji już zarejestrowane dane.

Możemy również zweryfikować, czy dane są z powodzeniem przechowywane w bazie danych za pomocą PSQL:

$ PSQL -D ExampleDB ExampledB =# Wybierz * od użytkowników; userID | Nazwa użytkownika | E -mail | Rejestracja_date --------+----------+------------------------+---- ------------------------ 0 | foobar | [email protected] | 2019-06-25 20:28:18.224375 (1 rząd)


Końcowe przemyślenia

Stworzyliśmy przykładową aplikację, wykorzystując wiedzę z różnych pól, bazy danych, WebServer, Http Protokół w ogóle i oczywiście rozwój PHP. Ten przewodnik ma na celu pokazanie, jak łatwo jest stworzyć coś przydatnego w połączeniu tych pól. Mam nadzieję, że ten przewodnik może pomóc początkującym w zrozumieniu niektórych aspektów rozwoju i może wykazać, że nie jest to nauka kosmiczna - dodaliśmy tylko kilka wierszy kodu tu i tam, a wszystko zaczyna współpracować.

Podczas gdy ten przykładowy aplikacja służy celom demonstracyjnym, kod i całe rozwiązanie oczywiście płacą w celu poprawy. Żeby wymienić tylko kilka…

  • Nic nie zapobiega operatorowi rejestrowania dokładnej nazwy użytkownika i/lub e-maila dwukrotnie. Spowodowałoby to zbędne rekordy. Można to obsługiwać zarówno po stronie bazy danych (unikalne ograniczenie), jak i aplikacja (sprawdź dane przed wstawieniem).
  • Skąd pochodzą zarejestrowane dane? Co chroni aplikację przed złym aktorem? W tej chwili nic nie wystarczyłby pojedynczy skrypt, aby go przeciążyć, tylko domyślna obrona WebServer jest na miejscu - ale to nie uniemożliwia mi opublikowania pełnej trylogii Władcy Pierścieni w jednym z pól 1000 razy na minutę ( tylko przepustowość). W tym stanie aplikacji łatwo jest wypełnić dyski w bazie danych losowymi danymi - weryfikacja wejściowa użytkownika pojawia się tutaj ponownie, ale także uwierzytelnianie i autoryzacja.
  • W tym momencie idealnie brakuje projektowania stron internetowych. Niektóre CSS, Więcej tekstu, który pomaga w pracy operatora, przydatne komunikaty o błędach… przyjazność dla użytkownika jest również ważnym punktem widzenia.
  • Naturalnie nagrywanie nazwy użytkownika użytkownika i powiązanego e-maila jest tylko przykładem, moglibyśmy nagrać pierwsze i nazwisko, numer telefonu, więcej niż jeden e-mail na użytkownika… cokolwiek innego, co jest przydatne do przechowywania.

Lista może być długa. Od, czytelnik, zależy od ciebie, aby ulepszyć własną aplikację. Jeśli ten przewodnik pomógł ci nadejść na ścieżce rozwoju, jako hobby, albo dążąc do bycia profesjonalistą, to dobrze służyło swoim celowi.

Powiązane samouczki Linux:

  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Zagnieżdżone pętle w skryptach Bash
  • Jak utworzyć stos lampy na bazie Dockera za pomocą Dockera na…
  • Rzeczy do zrobienia po zainstalowaniu Ubuntu 20.04 Focal Fossa Linux
  • Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
  • Instalacja Ampache Raspberry Pi
  • Linux Apache Nie wykonywanie plików PHP: Rozwiązanie
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Instalacja OpenLitespeed WordPress
  • Jak zainstalować PHP na Ubuntu Linux