Membuat Koneksi Database MySQL dengan PHP dan Apache di FreeBSD
· 2 min read · Label UnixBSDPHP memiliki beberapa fungsi untuk menghubungkan dan berinteraksi dengan database. MySql Server. Yang paling umum dan sering digunakan oleh administrator sistem untuk membuat permintaan dari PHP ke database MySQL Server adalah:
- mysqli_connect: Digunakan untuk membuat koneksi ke server basis data MySql.
- mysqli_query: Digunakan untuk mengirimkan pertanyaan SQL ke basis data MySQL.
- mysqli_close: Digunakan untuk menutup koneksi basis data.
Dalam fungsinya mysqli_connect harus menerima tiga parameter agar dapat terhubung ke database MySQL: alamat server (host), nama pengguna, dan kata sandi pengguna. Ketiga persyaratan ini berasal dari server MySQL, baik di server pribadi maupun layanan hosting. Setelah mysqli_connect menerima ketiga kondisi ini, maka ia akan mengembalikan data yang menjelaskan koneksi, yang kemudian akan diteruskan ke mysqli_query.
Lebih jauh, semua manipulasi database dilakukan dengan menggunakan berbagai query SQL melalui mysqli_query. Dengan menggunakan query SQL, Anda dapat membuat dan menghapus tabel, membuat pilihan data berdasarkan filter jenis tertentu, serta menambah dan menghapus baris. Dalam fungsinya mysqli_query menerima dua parameter:
- Yang pertama adalah data yang menjelaskan koneksi (hasil dari mysqli_connect), dan
- Yang kedua adalah kueri SQL dalam bentuk string sederhana.
Dalam artikel ini kita akan mempelajari cara menghubungkan file PHP ke database MySql Server. Sebelum kita melangkah lebih jauh, sebaiknya Anda membaca artikel yang terkait dengan materi yang akan kita pelajari sekarang.
1. Spesifikasi Sistem
- OS: FreeBSD 13.2
- IP Address: 192.168.5.2
- Hostname: ns1
- Apache24
- mod dan extension PHP
- MySQL: mysql80-server
- php: php82
- phpMyAdmin: phpMyAdmin5-php82
2. Membuat Database MySQL
Untuk memulai pelajaran ini, pastikan program Mysql server sudah terinstal di server FreeBSD, pada artikel ini kita menggunakan versi mysql80-server. Sebagai langkah awal agar lebih mudah dalam berlatih koneksi database dengan PHP, kita akan mulai dengan membuat database MySQL Server.Sebelum memulai, pastikan script "bind-address" pada file "/usr/local/etc/mysql/my.cnf" sudah diubah ke IP private server FreeBSD, yaitu 192.168.5.2, seperti pada contoh di bawah ini.
Dalam skrip di atas, "router" adalah kata sandi root dari server MySQL yang telah diinstal pada komputer FreeBSD. Setelah kita berada di baris perintah MySQL, kita masuk ke basis data MySQL.
root@ns1:~ # ee /usr/local/etc/mysql/my.cnf
[client]
port = 3306
socket = /tmp/mysql.sock
[mysql]
prompt = \u@\h [\d]>\_
no_auto_rehash
[mysqld]
user = mysql
port = 3306
socket = /tmp/mysql.sock
bind-address = 192.168.5.2
basedir = /usr/local
datadir = /var/db/mysql
a. Membuat user MySQL
Agar database MySQL dapat terhubung dengan PHP, diperlukan user database yang akan menjembatani MySQL dan PHP. User ini menyimpan informasi password dan berbagai informasi database MySQL. Berikut ini adalah contoh pembuatan user dengan MySQL.root@ns1:~ # mysql -u root -p
Enter password: router
root@localhost [(none)]>
root@localhost [(none)]> use mysql;
Database changed
root@localhost [mysql]> select user,host from user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)
root@localhost [mysql]>
root@localhost [mysql]> CREATE USER 'semeru'@'192.168.5.2' IDENTIFIED BY 'gunungsemeru';
Query OK, 0 rows affected (0.05 sec)
root@localhost [mysql]> GRANT SELECT ON *.* TO 'semeru'@'192.168.5.2';
Query OK, 0 rows affected (0.02 sec)
root@localhost [mysql]>
root@localhost [mysql]> CREATE USER 'rinjani'@'ns1' IDENTIFIED BY 'gunungrinjani';
Query OK, 0 rows affected (0.05 sec)
root@localhost [mysql]> GRANT SELECT ON *.* TO 'rinjani'@'ns1';
Query OK, 0 rows affected (0.03 sec)
root@localhost [mysql]>
b. Membuat database dan tabel di MySQL
Setelah kita mengetahui cara membuat pengguna di MySQL, mari kita lanjutkan dengan membuat database dan tabel. Berikut ini adalah skrip yang digunakan untuk membuat database di MySQL.root@localhost [mysql]> CREATE DATABASE bromo;
Query OK, 1 row affected (0.05 sec)
root@localhost [mysql]> CREATE DATABASE anjani;
Query OK, 1 row affected (0.04 sec)
root@localhost [mysql]>
root@localhost [mysql]> show databases;
+--------------------+
| Database |
+--------------------+
| anjani |
| bromo |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
6 rows in set (0.01 sec)
root@localhost [mysql]> CREATE TABLE gunung ( namagunung VARCHAR(128), daerah VARCHAR(90), ketinggian VARCHAR(30));
Query OK, 0 rows affected (0.18 sec)
root@localhost [mysql]> INSERT INTO gunung VALUES('gunung semeru', 'Jawa Timur', '3676 m');
Query OK, 1 row affected (0.04 sec)
root@localhost [mysql]> INSERT INTO gunung VALUES('gunung rinjani', 'NTB', '3726 m');
Query OK, 1 row affected (0.02 sec)
root@localhost [mysql]> INSERT INTO gunung VALUES('gunung merbabu', 'Jawa Tengah', '3145 m');
Query OK, 1 row affected (0.02 sec)
root@localhost [mysql]> SHOW TABLES;
+------------------------------------------------------+
| Tables_in_mysql |
+------------------------------------------------------+
| columns_priv |
| component |
| db |
| gunung |
| servers |
| user |
+------------------------------------------------------+
38 rows in set (0.00 sec)
root@localhost [mysql]> SELECT * FROM gunung;
+----------------+-------------+------------+
| namagunung | daerah | ketinggian |
+----------------+-------------+------------+
| gunung semeru | Jawa Timur | 3676 m |
| gunung rinjani | NTB | 3726 m |
| gunung merbabu | Jawa Tengah | 3145 m |
+----------------+-------------+------------+
3 rows in set (0.00 sec)
Untuk menguji atau mencoba hasil dari materi yang telah kita pelajari di atas, Anda dapat menggunakan "phpmyadmin". Cobalah login dengan user "semeru" dan "rinjani". Setelah berhasil login, di phpmyadmin buka database mysql, dan lihat hasilnya.
3. Membuat Koneksi Database MySQL Dengan PHP
a. Koneksi dengan mysqli
Sebelum Anda mempelajari bagian 3 lebih lanjut, pastikan spesifikasi sistem di atas telah terinstal pada server FreeBSD dan Anda juga telah membaca artikel yang kami rekomendasikan di atas. Oke, mari kita mulai dengan bagian 3 dari materi ini. Sebagai langkah pertama, kita akan menginstal aplikasi "php82-mysqli" dan "php82-pdo". Kedua aplikasi ini akan menghubungkan PHP dengan server MySQL.root@ns1:~ # cd /usr/ports/databases/php82-mysqli/ && make install clean
root@ns1:/usr/ports/databases/php82-mysqli # cd /usr/ports/databases/php82-pdo/ && make install clean
root@ns1:~ # ee /usr/local/www/apache24/data/testkoneksi.php
<?php
$servername = "192.168.5.2";
$username = "semeru";
$password = "gunungsemeru";
// Create connection
$conn = new mysqli($servername, $username, $password);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
echo "Happy! You have successfully connected PHP to the MySQL Server Database";
?>
root@ns1:~ # service apache24 restart
b. Koneksi dengan pdo
Setelah kita berhasil membuat koneksi dengan mysqli, sekarang kita lanjutkan dengan koneksi pdo. Ikuti langkah-langkah berikut untuk membuat koneksi PHP MySQL Server dengan PDO.Langkah pertama adalah membuat file bernama "/usr/local/www/apache24/data/koneksipdo.php". Pada file "koneksipdo.php" masukkan skrip berikut.
root@ns1:~ # ee /usr/local/www/apache24/data/koneksipdo.php
<?php
$servername = "192.168.5.2";
$username = "semeru";
$password = "gunungsemeru";
try {
$conn = new PDO("mysql:host=$servername;dbname=bromo", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Selamat! Anda telah berhasil menghubungkan PHP PDO dengan Database MySQL Server";
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
?>
Coba, perhatikan script biru di atas. Dalam membuat koneksi database MySql dengan PHP PDO, diperlukan database (ini yang membedakannya dengan koneksi MySQL). Karena pada materi artikel ini kita telah membuat database dengan nama "bromo" dan "anjani", jadi kita bisa memilih salah satu dari keduanya. Dalam hal ini untuk membuat koneksi dengan PDO, kita ambil database "bromo".
Bagaimana?, sampai di sini apakah anda sudah paham tentang membuat koneksi PHP dengan MySQL Server. Jika belum, restart server apache24.
root@ns1:~ # service apache24 restart
Kemudian buka web browser Google Chrome, dan ketik "http://192.168.5.2/koneksipdo.php", lihat hasilnya, apakah koneksi database Anda dengan PHP PDO berhasil?.
MySQLI dan PDO memiliki kelebihan masing-masing. Perlu diingat bahwa MySQLI hanya untuk database MySQL. Sementara itu, PDO dapat digunakan bersama dengan database lain seperti MariaDB, MongoDB, PostgreSQL dan lainnya. PDO dapat menyederhanakan proses transisi, sehingga sangat baik untuk digunakan oleh database selain server MySQL.
Silahkan Berkomentar, Kakak...! Bunda...!
Posting Komentar