Daten in einer POSGRESQL -Datenbank mit PHP anhalten

Daten in einer POSGRESQL -Datenbank mit PHP anhalten

PHP ist eine weit verbreitete Server -Skriptsprache. Es ist ein großer Fähigkeiten und die leichte Natur macht es ideal für die Entwicklung von Web -Frontends. Obwohl es möglich ist, fortschrittliche Strukturen darin zu erstellen, ist es auch einfach zu lernen, was es auch für Anfänger zu einem guten Ausgangspunkt macht. Die von der von uns erstellten Anwendung aufgezeichneten, verarbeiteten, gesendeten oder angezeigten Daten müssen jedoch irgendwo gespeichert werden. Unsere Webseite ist ohne diese Daten staatenlos. Wir können unsere Daten auf viele Arten speichern oder sie sogar nach dem Gebrauch verwerfen, aber der standardmäßigste Weg besteht darin, sie in einer Datenbank zu speichern.

In diesem Tutorial erstellen wir eine einfache Webseite, um Benutzerdaten aufzuzeichnen und anzuzeigen. Wir werden einen PostgreSQL RDBMS als Backend verwenden und unsere Anwendung in PHP entwickeln, die auf einem Apache -Webserver ausgeführt wird. Auf diese Weise können wir auf unsere Webanwendung von jedem gemeinsamen Browser zugreifen, um unsere Benutzerdatenbank anzuzeigen oder hinzuzufügen. Es ist die Art der Webanwendung, die viele Benutzer/Bediener gleichzeitig mit ihr arbeiten können. Sie benötigen nur einen Browser- und Netzwerkzugriff auf unsere Anwendung.

In diesem Tutorial lernen Sie:

  • So installieren Sie die erforderlichen Pakete für die PostgreSQL -Verbindung in PHP
  • So erstellen Sie die Datenbankseite der Anwendung
  • So codieren Sie die Beispielanwendung
  • So arbeiten und überprüfen Sie die Beispielanwendung
Aufzeichnungsdatenbroughser aufzeichnen.

Softwareanforderungen und Konventionen verwendet

Softwareanforderungen und Linux -Befehlszeilenkonventionen
Kategorie Anforderungen, Konventionen oder Softwareversion verwendet
System Ubuntu 18.04.2
Software PostgreSQL 10.9, Php 7.2.19
Andere Privilegierter Zugriff auf Ihr Linux -System als Root oder über die sudo Befehl.
Konventionen # - erfordert, dass gegebene Linux -Befehle mit Root -Berechtigungen entweder direkt als Stammbenutzer oder mit Verwendung von ausgeführt werden können sudo Befehl
$ - Erfordert, dass die angegebenen Linux-Befehle als regelmäßiger nicht privilegierter Benutzer ausgeführt werden können

Anmerkungen zu Softwarekomponenten

Wir haben unsere Anwendung auf Ubuntu eingerichtet, aber im Grunde kann dieser Prozess auf jede Verteilung portiert werden. Unterschiede sind in Paketmanagern und Paketnamen sowie in einem Verzeichnispfad. Beachten Sie auch, dass wir zwar die Versionen der oben genannten Softwarekomponenten verwenden, diese Anwendung jedoch auf verschiedenen Versionen der Komponenten mit kleinen Anpassungen basieren kann. Einige Beispiele für andere Verteilungen werden zum Vergleich aufgenommen.

Sie können feststellen, dass der Antrag minimalistisch ist: Das ist absichtlich. Das Ziel dieses Leitfaden. Minimalcode, Minimalkomponenten. Verwenden Sie diesen Leitfaden nicht, um Produktionsanwendungen zu erstellen, da es für diese Angelegenheit keine Sicherheitsmessungen, die Wiederauswechsbarkeit oder Optimierung fehlen.

Installieren der erforderlichen Pakete

Nach der Installation der PostgreSQL -Datenbank müssen wir nur den PHP -Support hinzufügen. Dafür brauchen wir das PHP-PGSQL Paket. Wir werden verwenden geeignet Um es zu installieren:

# APT-Get Installieren Sie PHP-PGSQL

Einige Distributionen können es nennen PHP7-PGSQL Und dergleichen, aber alle Paketmanager bieten Suchfunktion. Es ist also leicht zu finden, was wir brauchen. So installieren Sie beispielsweise Postgresql auf RHEL8 / CentOS 8 Linux -Systemen.

Wir müssen auch PHP, einen Webserver und die Unterstützung von PHP auf dem Webserver installieren. Das sind zwei Pakete entfernt:

# APT-Get Installieren Sie Apache2 libapache2-mod-php

Wir können beide Dienste starten, damit sie in den nächsten Schritten verfügbar sind. Wir werden verwenden systemd dafür.

# SystemCTL Start postgresql # systemclt start apache2


Erstellen der Datenbank und der erforderlichen Objekte

Die Datenbankseite unserer Anwendung besteht aus einer Datenbank, einer einzelnen Tabelle und einer Sequenz, um die automatische Primärschlüsselzuweisung zu unterstützen.

  1. Wir werden zur Postgres Benutzer:
    # Su - Postgres
  2. Melden Sie sich in der Datenbank an:
    $ PSQL PSQL (10.9 (Ubuntu 10.9-0ubuntu0.18.04.1)) Geben Sie "Hilfe" für Hilfe ein. postgres =#
  3. Erstellen Sie einen neuen Benutzer:
    postgres =# Rollenbeispiele mit Anmeldekennwort 'Beispielpass' erstellen;

    Und eine Datenbank mit dem Eigentümersatz.

    postgres =# Database ExampledB-Eigentümer BeispielUser codieren 'UTF-8';
  4. Nach dem Verlassen des PSQL Tool erstellen wir eine Textdatei mit dem Namen Beispiel_table.sql mit dem folgenden Inhalt:
    Erstellen Sie Sequence userID_SEQ Start mit 0 Inkrement durch 1 NO MAXVALUE MINVALUE 0 Cache 1; alterne sequence userID_seq -Besitzer zum BeispielUser; Tabellenbenutzer erstellen (BenutzerID numerische Primärschlüssel Standard -Standard -NextVal ('userID_SEQ' :: Regclass), Benutzername -Text nicht NULL, E -Mail -Text nicht null, Registrierung_Date TimestAMP Standard ()); TABLE -Benutzerbesitzer in BeispielUser ändern;
    Kopieren

    Hier erstellen wir eine Sequenz in Zeile 1, die für jeden Datensatz in der Tabelle einen einzigartigen Primärschlüssel bietet, als das Eigentum festzulegen. In Zeile 3 erstellen wir eine Tabelle, in der die Benutzerdaten gehalten werden. Wir werden mit der Anwendung aufgezeichnet und angezeigt. Wir setzen Standardwerte für die Benutzer-ID Und Registrierungsdatum, und überlassen es der Datenbank, um diese Felder für uns zu füllen.

  5. Wir laden die obige SQL -Datei in die neue Datenbank:
    $ psql -d exampledb < example_table.sql CREATE SEQUENCE ALTER SEQUENCE CREATE TABLE ALTER TABLE

Damit ist unsere Datenbank eingerichtet und bereit zu dienen. PostgreSQL 10.9 auf Ubuntu akzeptiert standardmäßig kennwortgeschützte Anmeldungen auf dem Loopback-Gerät. Wenn Sie andere Versionen verwenden, müssen Sie möglicherweise die ändern PG_HBA.Conf Um den Zugriff auf die Datenbank zu aktivieren. In unserem Redmine Installation Guide gibt es ein Beispiel, wie Sie dies einrichten sollen.

Erstellen des Anwendungscode

Während es sicherlich viele großartige Tools gibt, die dazu beitragen, den Arbeitsquellcode zu erstellen, werden wir diese hier nicht abdecken, aber dies würde die Komplexität dieser Anleitung erhöhen. Wir erstellen eine Textdatei mit dem Namen Aufzeichnung.Php, im Standard DOKUMENT ROOT Verzeichnis auf Ubuntu 18, /var/www/html/. Bei anderen Verteilungen könnte dies sein /srv/www/htdocs/, oder etwas anderes. Siehe die Konfiguration des Webservers, wenn Sie sich nicht sicher sind.

PHP ist eine Skriptsprache, was bedeutet.

Wir können einen Befehlszeilentexteditor verwenden, z vi oder Nano Um die genannte PHP -Datei mit dem folgenden Quellcode zu füllen:

    Benutzeraufzeichnungsseite   

Bitte füllen Sie das folgende Formular aus und drücken Sie die Senden, um die Daten aufzunehmen.





\N#NutzernameE-Mail-AddresseRegistrierungsdatum\ n "; while ($ row = pg_fetch_row ($ result)) echo"" . $ row [0] . "" . $ row [1] . "" . $ row [2] . "" . $ row [3] . "\ n "; echo"\ n "; / * Abschnitt 7 * / pg_close ($ dbconn); ?>
Kopieren

Wir starten unseren Code als einfache statische HTML -Seite bei Abschnitt 1. Wir erstellen eine Form bei Sektion 2 Dies bietet dem Benutzer die Möglichkeit, Daten in die Anwendung aufzuzeichnen. Wir werden nur um einen Benutzernamen und eine E-Mail-Adresse bitten. Bei Sektion 3 Wir haben den PHP -Code in die Seite eingebettet. Sektion 4 Erstellt die Datenbankverbindung mit den Verbindungsinformationen, die wir im Datenbankschritt eingerichtet haben. Wenn die Verbindung nicht erstellt werden kann, stirbt die Anwendung mit einer Fehlermeldung.



Bei Abschnitt 5 Wir verarbeiten alle Daten, die zur Verarbeitung mit dem Formular gesendet werden, das wir erstellt haben Sektion 2. Wenn sowohl "Benutzername" als auch "E -Mail" veröffentlicht werden, werden wir überprüfen, ob sie nicht leer sind, und wenn dies nicht der Fall ist, werden wir sie mit unserer Datenbankverbindung in die Datenbank einfügen.

Unabhängig vom Empfang von Daten veröffentlichen wir die Datenbanktabelle für bereits aufgezeichnete Benutzerdaten unter Abschnitt 6. Wir generieren den erforderlichen HTML -Code, um eine mit den Daten gefüllte Tabelle anzugeben, die aus der Datenbank zurückgegeben wird.

Bei Setion 7 Wir schließen unsere Datenbankverbindung (reinigen Sie immer Objekte, die nicht mehr benötigt werden!) und bei Sektion 8 Wir hinterlassen den PHP -Code und beenden unsere Seite mit einfachen HTML -Tags. Und damit ist unsere Bewerbung vollständig, wir können sie verwenden.

Verwenden der Anwendung

Wir werden einen Browser zeigen http: // localhost/Aufnahme.Php. Die einzige Seite unserer Beispielanwendung wird angezeigt.

Benutzertabelle ist leer.

Wir können die Felder des Formulars mit zufälligen Daten füllen, um die Anwendung zu testen. Wenn der Text zu beiden Feldern hinzugefügt wird, können wir die Daten einreichen.

Füllen Sie die Formularfelder mit Beispieldaten aus.

Nach dem Senden zeigt die Seite dasselbe Formular, in dem wir unseren nächsten Benutzer und auch das bereits aufgezeichnete, der nach dem Einfügen aus der Datenbank abfragt wird. Wir haben unser Ziel einer Anwendung zur Aufzeichnung von Benutzerdaten abgeschlossen.

Anwendungsauflistung bereits aufgezeichnete Daten.

Wir können auch überprüfen, ob die Daten in der Datenbank erfolgreich gespeichert werden PSQL:

$ psql -d exampledB exampledb =# auswählen * von Benutzern; userId | Benutzername | E -Mail | Registrierung_Date --------+----------+------------------------+----- ------------------------ 0 | foobar | [email protected] | 2019-06-25 20:28:18.224375 (1 Reihe)


Abschließende Gedanken

Wir haben eine Beispielanwendung erstellt, die Wissen aus verschiedenen Feldern, Datenbank, Webserver und die Http Protokoll im Allgemeinen und natürlich die PHP -Entwicklung. Dieser Leitfaden soll zeigen, wie einfach es ist, etwas Nützliches mit der Vereinigung dieser Felder zu schaffen. Ich hoffe, dass dieser Leitfaden Anfängern helfen kann, einige der Aspekte der Entwicklung zu verstehen und zu zeigen, dass es keine Weltraumwissenschaft ist. Wir haben hier und da nur ein paar Codezeilen hinzugefügt, und das Ganze beginnt zusammenzuarbeiten.

Diese Beispielanwendung erfüllt ihren Demonstrationszweck, den Code und die gesamte Lösung natürlich um Verbesserungsschriften. Nur um ein paar zu nennen…

  • Nichts verhindert einen Betreiber bei der Aufzeichnung des genauen Benutzernamens und/oder der E-Mail zweimal. Das würde zu redundanten Aufzeichnungen führen. Dies kann sowohl auf der Datenbank (eindeutige Einschränkung) als auch auf der Anwendung (Daten vor dem Insertion verifizieren) behandelt werden.
  • Woher kommen die aufgezeichneten Daten aus?? Was schützt die Anwendung vor einem schlechten Schauspieler? Im Moment würde ein einzelnes Shell -Skript ausreichen, um es zu überladen, nur die Standardverteidigung des Webservers ist vorhanden - aber das hindert mich nicht daran, den vollen Lord der Ringe -Trilogie in einem der Fields 1000 -mal pro Minute zu veröffentlichen ((( Nur Bandbreite). In diesem Zustand der Anwendung ist es einfach, die Festplatten unter der Datenbank mit zufälligen Daten zu füllen - die Überprüfung der Benutzereingabe wird hier wieder abspielt, aber auch die Authentifizierung und Autorisierung.
  • Das Webdesign fehlt an diesem Punkt perfekt. Manche CSS, Ein weiterer Text, der der Arbeit des Bedieners hilft, nützliche Fehlermeldungen… Benutzerfreundlichkeit ist auch ein wichtiger Standpunkt.
  • Natürlich ist das Aufzeichnen des Benutzernamens und der zugehörigen E-Mail eines Benutzers nur ein Beispiel. Wir könnten den ersten und Nachnamen aufzeichnen, Telefonnummer, vielleicht mehr als eine E-Mail pro Benutzer… alles andere, was zum Speichern nützlich ist.

Die Liste könnte weiter und weiter gehen. Es liegt an Ihnen, dem Leser, um Ihre eigene Bewerbung zu verbessern. Wenn dieser Leitfaden Ihnen geholfen hat, sich auf den Weg der Entwicklung zu entwickeln, entweder als Hobby oder durch das Ziel, ein Fachmann zu sein, diente er seinen Zweck gut.

Verwandte Linux -Tutorials:

  • Dinge zu installieren auf Ubuntu 20.04
  • Verschachtelte Schleifen in Bash -Skripten
  • So erstellen Sie einen Docker -basierten Lampenstapel mit Docker auf…
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Mint 20: Besser als Ubuntu und Microsoft Windows?
  • Ampache Raspberry Pi Installation
  • Linux Apache, die PHP -Dateien nicht ausführen: Lösung
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • OpenLiteSpeed ​​WordPress Installation
  • So installieren Sie PHP unter Ubuntu Linux