Membuat koneksi database postgresql dengan PHP dan Apache di FreeBSD

· 2 min read

PHP mendukung basis data PostgreSQL, fungsi pg_connect digunakan untuk terhubung ke server basis data PostgreSQL. Setelah koneksi terbentuk, perintah

Bagi yang suka pemrograman web, khususnya pemrograman PHP, bukan rahasia lagi bahwa kombinasi bahasa dan DBMS yang paling umum adalah PHP dan MySQL, tetapi terkadang perlu berinteraksi dengan database lain, misalnya dengan PostgreSQL atau MariaDB. Karena PHP mendukung pekerjaan tidak hanya dengan MySQL dan PostgreSQL, tetapi juga dengan banyak DBMS lain yang berbasis pada bahasa SQL.

Setelah kita mempelajari cara menginstal dan mengonfigurasi database PostgreSQL untuk berbagai skenario, memiliki database dan mengisinya dengan data akan menjadi tidak berguna sampai kita dapat mengambilnya dan menggunakannya dengan cara tertentu. Saat ini, menggunakan aplikasi web yang ramah seluler adalah metode yang paling umum digunakan dan populer.

Dalam tutorial ini kami akan menjelaskan cara menghubungkan ke server database PostgreSQL menggunakan PHP dengan bantuan Apache24 Web Server sebagai Frontend. Dalam hal ini, PHP berfungsi untuk menghubungkan database PostgreSQL, kemudian data yang tersimpan di PostgreSQL akan ditampilkan melalui browser web Chrome, Yandex, Firefox melalui Apache24.


Spesifikasi sistem

OS: FreeBSD 13.2
IP Address: 192.168.5.2
Apache24
phpPgAdmin 7.14.4-mod
PHP82
mod dan extension PHP
PHP-FPM
PostgreSQL 15.3


A. Install Dependensi PHP

Agar PostgreSQL dapat terhubung melalui PHP, diperlukan beberapa modul dan ekstensi PHP agar database PostgreSQL dapat berjalan dengan sempurna. Dependency ini merupakan file library PHP yang akan digunakan oleh PostgreSQL untuk berkomunikasi dengan PHP. Pada artikel ini kita tidak akan membahas instalasi PHP, Anda dapat membaca cara menginstal PHP pada artikel sebelumnya.

Berikut ini adalah modul dan ekstensi PHP yang harus diinstal pada sistem FreeBSD agar database PostgreSQL dapat terhubung ke PHP.

root@ns1:~ # cd /usr/ports/databases/php82-pgsql
root@ns1:/usr/ports/databases/php82-pgsql #
make install clean
root@ns1:/usr/ports/databases/php82-pgsql #
cd /usr/ports/lang/php82-extensions
root@ns1:/usr/ports/lang/php82-extensions #
make install clean
root@ns1:/usr/ports/lang/php82-extensions #
cd /usr/ports/www/mod_php82
root@ns1:/usr/ports/www/mod_php82 #
make install clean
root@ns1:/usr/ports/www/mod_php82 #
cd /usr/ports/www/php82-session
root@ns1:/usr/ports/www/php82-session #
make install clean
root@ns1:/usr/ports/www/php82-session #
cd /usr/ports/textproc/php82-simplexml
root@ns1:/usr/ports/textproc/php82-simplexml #
make install clean
root@ns1:/usr/ports/textproc/php82-simplexml #
cd /usr/ports/databases/php82-pdo
root@ns1:/usr/ports/databases/php82-pdo #
make install clean
root@ns1:/usr/ports/databases/php82-pdo #
cd /usr/ports/databases/php82-mysqli
root@ns1:/usr/ports/databases/php82-mysqli #
make install clean
root@ns1:/usr/ports/databases/php82-mysqli #
cd /usr/ports/databases/pear-DB
root@ns1:/usr/ports/databases/pear-DB #
make install clean
root@ns1:/usr/ports/databases/pear-DB #
cd /usr/ports/devel/pear
root@ns1:/usr/ports/devel/pear #
make install clean
root@ns1:/usr/ports/devel/pear #
cd /usr/ports/databases/php82-pdo_mysql
root@ns1:/usr/ports/databases/php82-pdo_mysql #
make install clean

Setelah itu kita lanjutkan dengan memasang aplikasi pear.

root@ns1:~ # pear install DB
WARNING: "pear/DB" is deprecated in favor of "pear/MDB2"
downloading DB-1.11.0.tgz ...
Starting to download DB-1.11.0.tgz (132,549 bytes)
.............................done: 132,549 bytes
install ok: channel://pear.php.net/DB-1.11.0

root@ns1:~ #
pear install MDB2
downloading MDB2-2.4.1.tgz ...
Starting to download MDB2-2.4.1.tgz (121,557 bytes)
..........................done: 121,557 bytes
install ok: channel://pear.php.net/MDB2-2.4.1
MDB2: Optional feature fbsql available (Frontbase SQL driver for MDB2)
MDB2: Optional feature ibase available (Interbase/Firebird driver for MDB2)
MDB2: Optional feature mysql available (MySQL driver for MDB2)
MDB2: Optional feature mysqli available (MySQLi driver for MDB2)
MDB2: Optional feature mssql available (MS SQL Server driver for MDB2)
MDB2: Optional feature oci8 available (Oracle driver for MDB2)
MDB2: Optional feature pgsql available (PostgreSQL driver for MDB2)
MDB2: Optional feature querysim available (Querysim driver for MDB2)
MDB2: Optional feature sqlite available (SQLite2 driver for MDB2)
MDB2: To install optional features use "pear install pear/MDB2#featurename"
Jika semua dependensi di atas sudah terpasang, kita bisa melakukan pengujian dengan membuka web browser Google Chrome, mengetik 192.168.5.2/info.php, pastikan info dan spesifikasi PHP muncul. Hal ini bertujuan untuk memastikan apakah PHP dan web browser Apache24 sudah terhubung.


B. Konfigurasi PHP dan PostgreSQL

PHP mendukung basis data PostgreSQL, fungsi pg_connect digunakan untuk terhubung ke server basis data PostgreSQL. Setelah koneksi terbentuk, perintah SQL dapat dijalankan dengan fungsi pg_query. pg_connect memiliki dua fungsi utama untuk beroperasi dengan server basis data PostgreSQL.

a. Membuka koneksi PostgreSQL

pg_connect(“host={namahost} port={portPostgreSQL} dbname={naamdatabasePostgreSQL} user={namauserPostgreSQL} password={passwordPostgreSQL}");

b. Menutup koneksi PostgreSQL

pg_close(connection_name);

Berikut ini adalah fungsi dasar PHP untuk bekerja dengan PostgreSQL:
  • pg_connect: membuka koneksi ke database, mengembalikan pointer koneksi.
  • pg_query: mengeksekusi query ke database, mengembalikan hasil query.
  • pg_fetch_assoc: mengubah hasil query menjadi array asosiatif.
  • pg_close: menutup koneksi ke database.
Setelah kita mengetahui fungsi pg_connect, kita akan mencoba membuat koneksi ke database PostgreSQL. Kita buat file con.php yang diletakkan di folder /usr/local/www/apache24/data. Di file con.php, masukkan skrip di bawah ini. Kami sarankan Anda juga membaca artikel sebelumnya.

root@ns1:~ # ee /usr/local/www/apache24/data/con.php
<?php
$dbconn = pg_connect("host=192.168.5.2 port=5432 dbname=postgres user=postgres password=router");
//connect to a database named "postgres" on the host "host" with a username and password
if (!$dbconn){
echo "<center><h1>Doesn't work =(</h1></center>";
}else
echo "<center><h1>OK, Koneksi adalah Good connection</h1></center>";
pg_close($dbconn);
?>
Untuk melakukan pengujian, kita buka browser web Yandex atau Chrome, ketik "192.168.5.2/con.php" di menu address bar browser.

Contoh lain kita ambil dari artikel "Menggunakan phpPgAdmin di FreeBSD dengan Apache24 Web Server".

root@ns1:~ # ee /usr/local/www/apache24/data/gunungrinjani.php
<?php
$dbconn = pg_connect("host=192.168.5.2 port=5432 dbname=puncakanjani user=gunungrinjani password=sembalun");
//connect to a database named "postgres" on the host "host" with a username and password
if (!$dbconn){
echo "<center><h1>Doesn't work =(</h1></center>";
}else
echo "<center><h1>OK, Koneksi adalah Good connection</h1></center>";
pg_close($dbconn);
?>
Anda membuka kembali peramban web Google Chrome, dan lihat hasilnya.

Kita masih mengambil contoh dari artikel "Menggunakan phpPgAdmin di FreeBSD dengan Server Web Apache24", sekarang kita buat file bernama "/usr/local/www/apache24/data/person.php", lalu masukkan skrip di bawah ini ke dalam file tersebut.

root@ns1:~ # ee /usr/local/www/apache24/data/person.php
<?php
$conn = pg_connect("host=192.168.5.2 port=5432 dbname=postgres user=postgres password=router");
if (!$conn) {
echo "An error occurred.\n";
exit;
}
$result = pg_query($conn, "SELECT * FROM person");
if (!$result) {
echo "An error occurred.\n";
exit;
}
while ($row = pg_fetch_row($result)) {
echo "value1: $row[0] value2: $row[1] value3: $row[2] value4: $row[3]";
echo "<br />\n";
}
?>
Kita lihat hasilnya dengan membuka Yandex Browser atau Google Chrome, pada menu address bar ketik “http://192.168.5.2/person.php”.


C. Membuat koneksi PHP dan PostgreSQL dengan PDO

Pada bagian 3, kita telah mempelajari cara menghubungkan database PostgreSQL dengan PHP melalui pg_connect. Masih ada teknik koneksi database PostgreSQL selain pg_connect, yaitu menggunakan PHP PDO. Syarat utama untuk melakukan koneksi dengan PDO adalah Anda telah menginstal semua dependensi yang disebutkan di atas dengan sempurna, terutama dependensi php82-pdo.

Berikut ini kami akan memberikan contoh cara menghubungkan ke database PostgreSQL menggunakan PHP PDO. Langkah pertama adalah membuat file /usr/local/www/apache24/data/config.php dan memasukkan skrip di bawah ini. Sebagai referensi kami masih menggunakan artikel "Menggunakan phpPgAdmin di FreeBSD dengan Apache24 Web Server".

root@ns1:~ # ee /usr/local/www/apache24/data/config.php
<?php
$host= '192.168.5.2';
$db = 'postgres';
$user = 'postgres';
$password = 'router'; // change to your password
?>
Setelah itu, kita buat file lain /usr/local/www/apache24/data/pdocon.php, dan masukkan skrip di bawah ini.

root@ns1:~ # ee /usr/local/www/apache24/data/pdoperson.php
<?php
require_once 'config.php';

try {
$dsn = "pgsql:host=$host;port=5432;dbname=$db;";
// make a database connection
$pdo = new PDO($dsn, $user, $password, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);

if ($pdo) {
echo "Selamat! Koneksi Ke Database $db Sukses.";
}
} catch (PDOException $e) {
die($e->getMessage());
} finally {
if ($pdo) {
$pdo = null;
}
}
?>
Untuk melihat hasilnya, ketik "http://192.168.5.2/pdoperson.php" di peramban web Yandex atau Google Chrome.

Tutorial ini membahas cara menghubungkan PHP ke PostgreSQL dengan pg_connect dan driver PDO. Dalam pembahasan di atas, kita telah mempelajari cara menghubungkan basis data PostgreSQL melalui PHP, sehingga dengan bantuan Apache24 data di PostgreSQL dapat ditampilkan di peramban web.
Subscribe on LinkedIn Membuat koneksi database postgresql dengan PHP dan Apache di FreeBSD

Enclosures Link: Membuat koneksi database postgresql dengan PHP dan Apache di FreeBSD

Silahkan Berkomentar, Kakak...! Bunda...!

Posting Komentar