Data berterusan ke dalam pangkalan data PosgreSQL dengan PHP

Data berterusan ke dalam pangkalan data PosgreSQL dengan PHP

PHP adalah bahasa skrip pelayan yang digunakan secara meluas. Ini keupayaan yang luas dan sifat ringan menjadikannya sesuai untuk pembangunan depan web, dan sementara itu mungkin untuk mewujudkan struktur lanjutan di dalamnya, penggunaan asasnya juga mudah dipelajari, yang menjadikannya titik permulaan yang baik untuk pemula juga. Data yang direkodkan, diproses, dihantar atau dipaparkan oleh aplikasi yang kami bina perlu disimpan di suatu tempat, bagaimanapun; Laman web kami tidak berkesudahan tanpa data ini. Kami boleh menyimpan data kami dengan banyak cara atau membuangnya selepas digunakan, tetapi cara yang paling standard adalah menyimpannya dalam pangkalan data yang direka untuk tujuan menyimpan data dengan cara yang boleh dipercayai, dan membentangkannya jika diperlukan, secepat mungkin.

Dalam tutorial ini, kami akan membina laman web mudah untuk merakam dan memaparkan data pengguna. Kami akan menggunakan RDBMS PostgreSQL sebagai backend, dan mengembangkan aplikasi kami di PHP yang akan dijalankan di webserver Apache. Dengan cara ini, kami dapat mengakses aplikasi web kami dari mana -mana pelayar biasa untuk melihat atau menambah ke pangkalan data pengguna kami. Ini adalah sifat aplikasi web yang banyak pengguna/pengendali dapat bekerja dengannya secara serentak, yang mereka perlukan adalah penyemak imbas dan akses rangkaian ke aplikasi kami.

Dalam tutorial ini anda akan belajar:

  • Cara memasang pakej yang diperlukan untuk sambungan PostgreSQL di PHP
  • Cara membuat bahagian pangkalan data aplikasi
  • Cara Kod Aplikasi Contoh
  • Cara Mengendalikan dan Mengesahkan Aplikasi Contoh
Merakam pelayar data melalui.

Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Ubuntu 18.04.2
Perisian PostgreSQL 10.9, Php 7.2.19
Yang lain Akses istimewa ke sistem linux anda sebagai akar atau melalui sudo perintah.
Konvensyen # - Memerlukan arahan Linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak

Nota mengenai komponen perisian

Kami menyediakan aplikasi kami di Ubuntu, tetapi pada dasarnya proses ini dapat dipindahkan ke mana -mana pengedaran. Perbezaan ada dalam pengurus pakej dan nama pakej, serta di beberapa laluan direktori. Juga ambil perhatian bahawa sementara kami akan menggunakan versi komponen perisian yang disebutkan di atas, aplikasi ini boleh dibina di atas pelbagai versi komponen dengan penyesuaian kecil. Beberapa contoh pengagihan lain akan dimasukkan untuk perbandingan.

Anda mungkin mendapati bahawa permohonan itu adalah minimalis: itu bertujuan. Matlamat panduan ini adalah untuk menunjukkan prinsip asas untuk membangunkan aplikasi yang dapat berkomunikasi dengan pangkalan data, semudah mungkin. Kod minimum, komponen minimum. Jangan gunakan panduan ini untuk membina aplikasi pengeluaran, kerana ia tidak mempunyai sebarang pengukuran keselamatan, kebolehgunaan semula atau pengoptimuman untuk perkara itu.

Memasang pakej yang diperlukan

Setelah memasang pangkalan data PostgreSQL, semua yang kita perlukan ialah menambah sokongan PHP. Untuk itu, kita memerlukan PHP-PGSQL pakej. Kami akan menggunakan Apt untuk memasangnya:

# apt-get memasang php-pgsql

Sebilangan distro mungkin memanggilnya Php7-PGSQL Dan sebagainya, tetapi semua pengurus pakej menyediakan fungsi carian, jadi mudah untuk mencari apa yang kita perlukan. Contohnya, ini adalah bagaimana anda memasang PostgreSQL pada sistem RHEL8 / CentOS 8 Linux.

Kami juga perlu memasang PHP, webserver, dan sokongan PHP pada webserver. Itu dua pakej jauh:

# apt-get memasang Apache2 libapache2-mod-php

Kita boleh memulakan kedua -dua perkhidmatan supaya mereka boleh didapati dalam langkah seterusnya. Kami akan menggunakan sistemd untuk itu.

# Systemctl Mula PostgreSql # SystemClt Mula Apache2


Membuat pangkalan data dan objek yang diperlukan

Bahagian pangkalan data aplikasi kami akan terdiri daripada pangkalan data, jadual tunggal dan urutan untuk menyokong tugasan utama utama automatik.

  1. Kami akan beralih ke Postgres Pengguna:
    # Su - Postgres
  2. Log masuk ke pangkalan data:
    $ PSQL PSQL (10.9 (Ubuntu 10.9-0ubuntu0.18.04.1)) Taipkan "bantuan" untuk mendapatkan bantuan. Postgres =#
  3. Buat pengguna baru:
    Postgres =# Buat contoh contoh yang baik dengan kata laluan masuk 'ExamplePase';

    Dan pangkalan data dengan set pemilik.

    postgres =# Buat pangkalan data ExpledB Pemilik Contoh Pengekodan 'UTF-8';
  4. Selepas keluar PSQL alat, kami membuat fail teks yang dipanggil Contoh_table.SQL dengan kandungan berikut:
    Buat urutan userid_seq Mula dengan 0 kenaikan dengan 1 tiada maxvalue minvalue 0 cache 1; mengubah urutan userid_seq pemilik ke contoh; Buat Pengguna Jadual (UserId Numeric Utama Utama Lalai NextVal ('userId_Seq' :: RegClass), Teks Nama Pengguna Tidak Null, Teks E -mel Tidak Null, Registration_Date Timestamp Default Now ()); ALTER Jadual Pengguna Pemilik ke ExampleUser;
    Salinan

    Di sini kami membuat urutan pada baris 1 yang akan memberikan kunci utama yang unik kepada setiap rekod dalam jadual, daripada menetapkan pemilikannya. Pada baris 3 kami membuat jadual yang akan memegang data pengguna yang akan kami rakam dan dipaparkan dengan aplikasi. Kami menetapkan nilai lalai untuk ID Pengguna dan Tarikh pendaftaran, dan akan meninggalkannya ke pangkalan data untuk mengisi bidang tersebut untuk kami.

  5. Kami memuatkan fail SQL di atas ke pangkalan data baru:
    $ psql -d exampledb < example_table.sql CREATE SEQUENCE ALTER SEQUENCE CREATE TABLE ALTER TABLE

Dengan ini pangkalan data kami disediakan dan bersedia untuk berkhidmat. PostgreSQL 10.9 di Ubuntu menerima log masuk yang dilindungi kata laluan pada peranti loopback secara lalai. Sekiranya anda menggunakan versi lain, anda mungkin perlu mengubah suai pg_hba.Conf Untuk membolehkan akses ke pangkalan data. Terdapat contoh dalam panduan pemasangan redmine kami mengenai cara menetapkannya.

Membina kod aplikasi

Walaupun terdapat banyak alat hebat di luar sana untuk membantu menghasilkan kod sumber kerja, kami tidak akan menutupi mereka di sini, ia akan menambah kerumitan panduan ini. Kami akan membuat teks teks yang dipanggil rakaman.php, Dalam lalai Document_root Direktori di Ubuntu 18, /var/www/html/. Mengenai pengagihan lain ini mungkin /srv/www/htdocs/, atau yang lain. Rujuk konfigurasi webserver jika anda tidak pasti.

PHP adalah bahasa skrip, yang bermaksud kita tidak perlu menyusun kod kita, hanya menyampaikannya kepada webserver, yang akan mentafsirnya runtime.

Kita boleh menggunakan editor teks baris arahan, seperti vi atau Nano Untuk mengisi fail PHP yang disebutkan dengan kod sumber berikut:

    Halaman rakaman pengguna   

Sila isi borang di bawah dan tekan Hantar untuk merakam data.





\ n#Nama penggunaAlamat emelTarikh pendaftaran\ n "; sementara ($ row = pg_fetch_row ($ hasil)) echo"" . $ row [0] . "" . $ baris [1] . "" . $ baris [2] . "" . $ row [3] . "\ n "; echo"\ n "; / * Seksyen 7 * / pg_close ($ dbconn); ?>
Salinan

Kami memulakan kod kami sebagai halaman HTML statik mudah di Seksyen 1. Kami membuat borang di Bahagian 2 yang memberikan pengguna keupayaan untuk merakam data ke dalam aplikasi. Kami hanya akan meminta nama pengguna dan alamat e-mel. Pada Bahagian 3 Kami membenamkan kod PHP ke halaman. Seksyen 4 Mewujudkan sambungan pangkalan data menggunakan maklumat sambungan yang kami sediakan di langkah pangkalan data. Sekiranya sambungan tidak dapat dibina, permohonan itu mati dengan mesej ralat.



Pada Seksyen 5 Kami mengendalikan sebarang data yang dihantar untuk diproses dengan borang yang kami buat di Bahagian 2. Jika kedua -dua "nama pengguna" dan "e -mel" diposkan, kami akan periksa sama ada mereka tidak kosong, dan jika mereka tidak, kami akan memasukkannya ke dalam pangkalan data menggunakan sambungan pangkalan data kami.

Tidak kira menerima sebarang data yang disiarkan, kami akan menanyakan jadual pangkalan data untuk data pengguna yang sudah direkodkan di Seksyen 6. Kami akan menjana kod HTML yang diperlukan untuk menyediakan jadual yang dipenuhi dengan data yang dikembalikan dari pangkalan data.

Pada setion 7 Kami menutup sambungan pangkalan data kami (sentiasa membersihkan objek yang tidak diperlukan lagi!), dan di Seksyen 8 Kami meninggalkan kod PHP, dan menyelesaikan halaman kami dengan tag HTML yang mudah. Dan dengan ini, aplikasi kami selesai, kami boleh mula menggunakannya.

Menggunakan aplikasi

Kami akan menunjuk penyemak imbas http: // localhost/rakaman.php. Halaman satu -satunya contoh aplikasi kami akan muncul.

Jadual Pengguna kosong.

Kami dapat mengisi bidang borang dengan data rawak untuk menguji aplikasi. Apabila teks ditambahkan ke kedua -dua bidang, kami boleh menyerahkan data.

Mengisi medan borang dengan data sampel.

Selepas hantar, halaman menunjukkan borang yang sama di mana kami dapat merakam pengguna seterusnya, dan juga yang telah direkodkan, yang dipersoalkan dari pangkalan data selepas dimasukkan. Kami telah menyelesaikan matlamat aplikasi rakaman data pengguna kami.

Penyenaraian permohonan sudah direkodkan data.

Kami juga boleh mengesahkan data disimpan dengan jayanya dalam pangkalan data menggunakan PSQL:

$ psql -d contoh exampledb =# pilih * dari pengguna; userid | Nama pengguna | E -mel | pendaftaran_date --------+----------+------------------------+---- ------------------------ 0 | Foobar | [email protected] | 2019-06-25 20:28:18.224375 (1 baris)


Pemikiran terakhir

Kami mencipta aplikasi contoh menggunakan pengetahuan dari bidang yang berlainan, pangkalan data, webserver, Http protokol secara umum, dan tentu saja pembangunan PHP. Panduan ini berhasrat untuk menunjukkan betapa mudahnya untuk mewujudkan sesuatu yang berguna dengan kesatuan bidang ini. Harapan saya ialah panduan ini dapat membantu pemula untuk memahami beberapa aspek pembangunan, dan dapat menunjukkan bahawa ia bukan sains ruang - kita hanya menambah beberapa baris kod di sana sini, dan semuanya mula bekerjasama.

Walaupun aplikasi contoh ini berfungsi dengan tujuan demonstrasi, kod, dan penyelesaian keseluruhannya menangis untuk penambahbaikan. Hanya untuk menamakan beberapa ..

  • Tidak ada yang menghalang pengendali merakam nama pengguna dan/atau e-mel yang tepat dua kali. Yang akan menyebabkan rekod berlebihan. Ini dapat dikendalikan pada pangkalan data (kekangan unik) dan aplikasi (sahkan data sebelum penyisipan).
  • Dari mana data yang direkodkan berasal? Apa yang melindungi permohonan dari pelakon yang buruk? Buat masa ini apa -apa, skrip shell tunggal akan cukup untuk membebankannya, hanya pertahanan lalai webserver yang ada - tetapi itu tidak menghalang saya daripada menyiarkan trilogi Lord of the Rings di salah satu bidang 1000 kali seminit ( hanya jalur lebar). Dalam keadaan aplikasi ini, mudah untuk mengisi cakera di bawah pangkalan data dengan data rawak - pengesahan input pengguna datang untuk dimainkan di sini lagi, tetapi juga pengesahan dan kebenaran.
  • Reka bentuk web hilang dengan sempurna pada ketika ini. Beberapa CSS, Beberapa lagi teks yang membantu kerja pengendali, mesej ralat yang berguna ... keramahan pengguna juga merupakan pandangan penting.
  • Secara semulajadi merakam nama pengguna pengguna dan e-mel yang berkaitan hanyalah contoh, kami boleh merakam nama pertama dan terakhir, nombor telefon mungkin, lebih daripada satu e-mel bagi setiap pengguna ... apa-apa lagi yang berguna untuk disimpan.

Senarai itu boleh diteruskan dan terus. Terpulang kepada anda, pembaca, untuk meningkatkan aplikasi anda sendiri. Sekiranya panduan ini membantu anda melangkah ke jalan membangun, sama ada sebagai hobi atau dengan bertujuan untuk menjadi profesional, maka ia melayani tujuannya dengan baik.

Tutorial Linux Berkaitan:

  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Gelung bersarang dalam skrip bash
  • Cara membuat timbunan lampu berasaskan Docker menggunakan Docker pada ..
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Pemasangan ampache raspberry pi
  • Linux Apache Tidak Melaksanakan Fail PHP: Penyelesaian
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Pemasangan WordPress OpenLiteSpeed
  • Cara memasang PHP di Ubuntu Linux