Daten in einer POSGRESQL -Datenbank mit PHP anhalten
- 1252
- 62
- Levke Harnapp
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
Softwareanforderungen und Konventionen verwendet
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.
- Wir werden zur
Postgres
Benutzer:# Su - Postgres
- 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 =#
- 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';
- Nach dem Verlassen des
PSQL
Tool erstellen wir eine Textdatei mit dem NamenBeispiel_table.sql
mit dem folgenden Inhalt:
KopierenErstellen 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;
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
UndRegistrierungsdatum
, und überlassen es der Datenbank, um diese Felder für uns zu füllen. - 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# Nutzername E-Mail-Addresse Registrierungsdatum \ 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.
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
- « Überprüfen Sie die Linux Mint -Version
- Wie man von der CLI auf Debian 10 Buster mit WLAN annimmt »