Cara Membuat Koneksi PHP dengan Database MySQL

Cara Membuat Koneksi PHP dengan Database MySQL

Baru terjun ke dunia web development? Anda mungkin perlu mempelajari cara membuat koneksi PHP dengan database MySQL.

Dengan mengetahui langkah membuat koneksi PHP dengan database MySQL, Anda pun bisa memodifikasi, melihat, atau mengelola tabel yang dibuat di database MySQL. Nah, artikel ini akan menunjukkan cara termudah untuk melakukannya.

Langsung saja simak artikelnya yuk!

Membuat Database MySQL (Opsional)

Langkah ini diperlukan kalau Anda tidak memiliki database MySQL. Apabila Anda adalah user Hostinger, Anda bisa membuat database MySQL baru melalui hPanel dalam beberapa langkah:

  1. Cari Database MySQL di bagian Database -> Pengelolaan.
  2. Isi kolom yang diperlukan lalu klik Buat.

Untuk membuat database MySQL di platform lain seperti cPanel, silakan baca tutorial cPanel kami. Namun ingat, database ini masih kosong dan perlu Anda tambahkan data agar bisa dimodifikasi.

Penting! Untuk langkah berikutnya, tulis kredensial database MySQL yang baru saja Anda buat. Jangan lupa untuk mencatat username dan passwordnya juga.

Dua Cara Membuat Koneksi Database PHP ke MySQL

Ada dua cara untuk membuat koneksi ke database MySQL dengan PHP, yaitu menggunakan MySQLi dan PDO.

MySQLi adalah singkatan dari MySQL Improved. Ekstensi khusus MySQL ini menambahkan fitur baru di interface database MySQL. MySQLi bersifat prosedural dan juga berorientasi objek, di mana siftat prosedural adalah atribut yang diwariskan dari versi MySQL yang lebih lama.

MySQL versi awal membagi task ke dalam satu prosedur bertahap (langkah demi langkah) dan saling berhubungan. Proses modifikasi akan semakin sulit karena Anda harus mengubah kode dari bagian paling pertama.

Di sisi lain, MySQLi melihat data sebagai serangkaian objek yang bisa saling bertukar antara objek dan fungsi, sehingga memungkinkan user untuk menambah atau menghapus data.

PDO adalah singkatan dari PHP Data Object. Tidak seperti MySQLi, PDO justru hanya berorientasipada objek dan mendukung sejumlah tipe database yang menggunakan PHP, seperti MySQL, MSSQL, Informix, dan PostgreSQL.

Penting! Fungsi mysql_ lama sudah tidak berlaku dan tidak boleh digunakan lagi karena tidak aman serta tidak lagi dikelola atau dikembangkan.

Salah satu fungsi penting yang juga didukung oleh MySQLi dan PDO adalah prepared statements. Fungsi ini akan mempercepat waktu yang dibutuhkan oleh MySQL untuk menjalankan query yang sama berkali-kali. Prepared statement juga berfungsi untuk mencegah terjadinya serangan injeksi SQL ketika menjalankan perubahan di database.

Bagaimanapun metode dan cara yang Anda gunakan, pastikanlah informasi yang diberikan benar dan valid adanya sehingga Anda bisa membuat koneksi database PHP MySQL. Informasi yang dimaksud di sini adalah informasi database MySQL yang sudah Anda catat dan simpan sebelumnya.

Untuk konfigurasi, Anda juga memerlukan nama server atau hostname. Hostname untuk server MySQL Hostinger adalah “localhost“. Secara umum, nama server merupakan nama yang digunakan bila Anda hendak mengunggah script PHP sebagai database ke server yang sama.

Apabila Anda ingin membuat koneksi ke database dari lokasi remote (misalnya, komputer), gunakanlah alamat IP server MySQL. Untuk mendapatkan informasi lengkap mengenai alamat IP ini, hubungi provider hosting Anda. Nantinya mereka akan memberi tahu hostname yang harus digunakan.

Menggunakan MySQLi untuk Membuat Koneksi PHP ke MySQL

Empat langkah menggunakan MySQLi untuk membuat koneksi database PHP ke MySQL:

  1. Buka File Manager -> public_html.
Folder Public html di file manager Hostinger
  1. Buat File Baru dengan mengklik ikon di menu sidebar.
  1. Simpan dengan nama databaseconnect.php. Anda bisa menggantinya sesuai keinginan, tapi tapi ekstensinya harus tetap .php.
  1. Klik dua kali file untuk membukanya, lalu copy-paste baris kode berikut ini ke file tersebut. Ubah 4 value pertama di bawah <?php dengan kredensial yang tadi Anda buat:
<?php
$servername = "localhost";
$database = "u123456789_DatabaseName";
$username = "u123456789_User";
$password = "MyStr0ngPa$!";
 
// Create connection
 
$conn = mysqli_connect($servername, $username, $password, $database);
 
// Check connection
 
if (!$conn) {
 
    die("Connection failed: " . mysqli_connect_error());
 
}
echo "Connected successfully";
mysqli_close($conn);
?>

Tentang Kode MySQLi

Metode utama yang digunakan di script ini adalah mysqli_connect(). Fungsi ini merupakan bagian internal PHP untuk membuat koneksi baru ke server MySQL.

Pada baris kode di atas, di bagian awalnya terdapat deklarasi variabel serta value yang ditentukan untuk variabel tersebut. Biasanya ada empat variabel yang diperlukan untuk membuat koneksi database yang benar: $servername, $database, $username, dan $password.

Dalam kode ini, kami menetapkan informasi database sebagai value untuk keempat variabel tersebut sehingga bisa diteruskan ke fungsi.

Apabila koneksi tidak berhasil dibuat, fungsi die() akan dijalankan. Fungsi ini akan menghentikan jalannya script dan menampilkan pesan yang memberitahukan bahwa telah terjadi kesalahan koneksi. Secara default, notifikasi koneksi MySQL error akan memunculkan pemberitahuan singkat Connection failed yang kemudian diikuti dengan pesan yang mendeskripsikan kesalahan (error) tersebut.

Namun di sisi lain, apabila koneksi ke MySQL berhasil dibuat, kode akan menampilkan pesan Connected successfully (berhasil terhubung).

Bagian terakhir dari barisan kode di atas adalah mysqli_close. Fungsi ini akan menutup koneksi ke database secara manual. Jika tidak ditetapkan sebelumnya, koneksi MySQL akan berhenti sendiri setelah script selesai dijalankan.

Menggunakan PDO untuk Membuat Koneksi PHP ke MySQL

Cara kedua untuk membuat koneksi database PHP ke MySQL adalah dengan PDO. Langkahnya hampir sama dengan MySQLi meskipun ada sedikit perbedaan:

  1. Di folder public_html, buat file yang diberi nama pdoconfig.php. Masukkan kode di bawah ini ke file tersebut. Jangan lupa, ganti value placeholder dengan informasi database yang sudah Anda buat dan catat sebelumnya. Klik Save and Close kalau sudah selesai.
<?php
$host = "localhost";
$dbname = "u123456789_DatabaseName";
$username = "u123456789_User";
$password = "MyStr0ngPa$!";
  1. Di direktori yang sama, buat file lain dan beri nama databaseconnect.php. Tambahkan kode di bawah ini. Jika file sebelumnya diberi nama lain (bukan pdoconfig.php), ganti value yang ada di require_once.
<?php
require_once 'pdoconfig.php';
try {
$conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
echo "Connected to $dbname at $host successfully.";
} catch (PDOException $pe) {
die ("Could not connect to the database $dbname :" . $pe->getMessage());
}

Tentang Kode PDO

Koneksi database PDO mengharuskan Anda membuat objek PDO baru yang dilengkapi dengan Data Source Name (DSN)Username, dan Password.

DSN mendeskripsikan tipe database, nama database, dan, jika dibutuhkan, informasi lain yang berkaitan dengan database. Informasi tersebut merujuk pada variabel dan juga value yang telah ditentukan di file dbconfig.php, ditandai oleh baris require_once yang ada di databaseconnect.php.

Pada barisan kode di subbab sebelumnya, di bagian bawah, terdapat kode try…catch. Arti dari kode ini adalah script akan mencoba (try) membuat koneksi ke MySQL mengunakan kode yang tersedia.

Namun, apabila ada masalah, kode di bagian catch yang akan dijalankan. Anda bisa menggunakan catch block untk menampilkan pesan koneksi bermasalah atau menjalankan kode alternatif jika try block gagal.

Apabila koneksi berhasil dibuat, pesan yang muncul adalah “Connected to $dbname at $host successfully.” Namun, jika percobaannya gagal, kode catch akan menampilkan pesan error dan memberhentikan script.

Mengecek Konektivitas dan Mengatasi Error yang Sering Terjadi

Untuk mengecek apakah koneksi berhasil dibuat atau justru gagal, ketik domain Anda, misalnya, namadomainanda/databaseconnect.php di kolom browser. Kalau file PHP Anda diberi nama selain dari contoh yang kami berikan, ganti databaseconnect dengan nama tersebut.

Nantinya Anda akan melihat pesan singkat “Connected successfully” atau pesan sejenis lainnya apabila koneksi berhasil dibuat dan dijalankan.

Akan tetapi, jika koneksi gagal dibuat, pesan yang ditampilkan berbeda. Tampilan pesan error untuk MySQLi tidak akan sama dengan pesan error untuk PDO.

Error Karena Memasukkan Password yang Salah

Error atau kesalahan ini terjadi apabila Anda hanya mengubah password atau informasi lainnya di kode PHP dan tidak di database.

Jika ada pesan “Access denied” atau “Could not connect to database” yang muncul dan diikuti dengan “(using password: YES)”, hal pertama yang harus dilakukan adalah mengecek informasi di database. Bisa saja terjadi salah ketik atau ada bagian yang hilang.

Tidak Dapat Membuat Koneksi Database PHP ke Server MySQL

Apabila ada pesan “Can’t connect to MySQL server di ‘server’ (110)” yang muncul di MySQLi, itu berarti script tidak mendapat respons dari server. Hal ini terjadi karena Anda menggunakan “server” sebagai $servername, bukannya “localhost”. Nama ini tidak dikenali.

Di PDO, pesan error yang muncul adalah “Connection failed:SQLSTATE[Hy000] [2002]” dan diikuti dengan informasi lainnya yang memberitahukan bahwa host MySQL tidak ditemukan. Cara mengatasi error ini sama seperti di atas.

Ingatlah hal ini: ketika terjadi error dan Anda hendak mengatasinya, cek error log situs.

Log tersimpan di folder yang sama dengan folder script yang sedang dijalankan. Misalnya, script yang sedang dijalankan berasal dari folder public_html, file error_log juga akan berada di folder tersebut.

Kesimpulan

Di tutorial ini, Anda telah mempelajari hal-hal dasar mengenai pembuatan koneksi database PHP ke MySQL menggunakan MySQLi dan PHP Data Objects (PDO).

Semoga tutorial ini bermanfaat bagi mereka yang ingin serius di bidang pengembangan web. Akhir kata, membuat koneksi PHP ke MySQL adalah langkah pertama dan paling penting jika Anda hendak menggunakan script dan melakukan konfigurasi tingkat lanjut.

Silakan tinggalkan komentar atau kritik dan saran pada kolom di bawah ini.

Author
Penulis

Ariata C.

Ariata suka sekali menulis dan menerjemahkan, dan sekarang ini bekerja sebagai translator di Hostinger Indonesia. Lewat artikel dan tutorial yang diterbitkan di blog Hostinger, Ariata ingin membagikan pengetahuan tentang website, WordPress, dan hal terkait hosting lainnya kepada para pembaca.